-
Plugins en Java
Bonjour,
Je cherche à développer un système de plugins en Java. Je pense utiliser cet exemple : http://vincentlaine.developpez.com/t.../java/plugins/
Mais j'aimerai qu'un plugin puisse en appeler un autre. Comment faire?
Merci d'avance,
Cordialement,
Christopher Hénard
-
Bonjour,
ton but est-il réellement de développer un système de plugins ou bien est-ce que tu comptes faire une appli basée sur un système de plugins?
-
Je souhaite faire une application évolutive qui utilise les plugins. Mais un plugin doit pouvoir en utiliser un autre.
-
Tu peux regarder du côté d'OSGi et ses implémentations (Felix, Knopflerfish et Equinox pour les plus répandues).
C'est touffu, mais ça te permettra de faire ce que tu veux.
-
Je préfère pas utiliser un truc trop complexe. Ya pas moyen avec le tuto ?
-
Le tuto est très bien pour avoir une idée de comment on peut faire fonctionner un système de plugins, mais le problème est très complexe et le tuto n'a abordé qu'une infime partie du sujet.
On doit pouvoir te donner une solution pour qu'un plugin puisse en utiliser un autre.
Du coup, tu vas devoir modifier l'exemple du tuto.
Mais bientôt, tu vas avoir à faire face à d'autres soucis liés aux plugins que tu n'auras pas su anticiper (parce que c'est très complexe, je ne mets pas en doute tes compétences).
Je dirais par exemple : la transitivité des dépendances, ou le conflits de versions...
Chaque problème devrait être surmontable, mais à chaque fois, tu vas patcher le modèle de départ, ce qui va le rendre moins stable et moins robuste que si tu avais eu connaissance de ces problèmes dès le début.
Donc, pour le bien de ton appli, je pense qu'il faut au moins que tu jettes un oeil à ce qui se fait ailleurs car d'autres se sont posés les mêmes questions que toi. Il serait dommage de tout refaire puisque ton but n'est pas de faire le système de plugins, mais de l'utiliser.
Après, j'ai parlé d'OSGi parce que c'est le seul que je connais, mais il peut en exister d'autres plus légers.
-
-
Si j'utilise le framework knopflerfish, est-ce que le déploiement de l'application sur une machine qui ne possède que le JRE d'installé sera simple ou alors il faut réinstaller le framework à chaque fois ?
J'aimerai bien avec mon application sous forme de jar et les plugins sous forme de jar dans un dossier, + éventuellement les bibliothèques nécessaires dans un dossier, mais sans avoir besoin d'installer plein de trucs pour déployer l'application.
-
Un framework OSGi n'a pas besoin d'énormément de choses pour fonctionner.
En gros, l'organisme responsable d'OSGi a écrit des spécifications qui contiennent, entre autres, des interfaces java (J2SE pur).
Knopflerfish, Felix et Equinox ne sont que des implémentations de ces spécifications (et donc de ces interfaces).
Donc pour utiliser un framework OSGi, il suffit d'avoir le ou les JARs dans ton classpath.
Il me semble que knopflerfish, comme Felix (Equinox, je sais pas), propose un JAR contenant pas mal de choses, dont les interfaces OSGi.
Mais au pire, cela te fais une poignée de JARs à ajouter au classpath.
Donc oui, cela sera assez simple, il suffira de founir les libs avec ta distribution et de les ajouter au classpath lors du lancement de l'application.
Il s'agit d'une librairie comme une autre, style log4J...
-
-