Question

Nous essayons de déterminer comment implémenter un framework de plug-in simple pour un service que nous implémentons, permettant à différents types de calculatrices d'être "branchées".

Après avoir lu un nombre d'articles sur les frameworks de plug-in Java, il semble que les options les plus courantes sont les suivantes:

OSGI semble être plus que ce dont nous avons besoin.

"Rouler soi-même" ok mais il serait bien de réutiliser une bibliothèque commune.

Nous en sommes donc au JPF et au JSPF. JPF ne semble plus être en développement actif.

JSPF semble très simple et vraiment tout ce dont nous avons besoin. Cependant, je n'en ai pas beaucoup entendu parler. J'ai seulement vu un post sur StackOverflow à ce sujet. Quelqu'un d'autre a-t-il une expérience avec JSPF? Ou d'autres commentaires sur ce choix de design?

Mise à jour : il n'y a pas forcément de réponse correcte à cette question. Nous allons toutefois suivre l'idée de Pavol, car nous avons besoin d'une solution vraiment très simple. Merci EoH pour le bon guide.

Était-ce utile?

La solution

Si vous prévoyez avoir un seul (ou seulement quelques-uns) «points d’extension» peu complexes, peut-être un SPI bien défini et un élément de configuration suffisant. Pas besoin d'utiliser un framework de plugin.

Par configuration, j'entends un mécanisme permettant de trouver vos plugins. Par exemple, quelque chose comme META-INF / services / ou simplement la liste de vos plugins dans un fichier de configuration.

Plus de détails (sur demande):

SPI = Interface de fournisseur de service , un "équivalent du côté de l'implémenteur d'une API". Pour en savoir plus, essayez de rechercher une différence entre API et SPI. Cependant, dans ce contexte, c’est juste un terme sophistiqué pour une interface à implémenter par vos plugins (c’est-à-dire qui définit le contrat pour vos plugins).

Un article court et agréable " Création d'une interface de fournisseur de services " de Ethan Nicholas explique comment créer votre propre SPI de la même manière que dans plusieurs parties de la plate-forme Java elle-même.

META-INF / services / peut être considéré comme une approche plus généralisée de la création des SPI. Pour plus d'informations, reportez-vous à la section correspondante de Spécification du fichier JAR .

Autres conseils

(Avertissement: je suis l'auteur de JSPF, il est donc préférable de prendre mon commentaire avec un grain de sel; -)

La raison principale pour laquelle j'ai commencé avec JSPF était parce que j'avais le même problème que vous: je cherchais une solution simple pour rendre mon projet de thèse extensible 1) et 2) lui donner un code plus ou moins clair structure.

La raison pour laquelle je n’ai pas décidé d’utiliser un framework existant, c’est parce que la plupart d’entre eux étaient si lourds au départ, que je me suis perdu dans la lecture de la documentation et que j’avais presque oublié ma tâche initiale. Donc, selon votre déclaration

  

Nous essayons de déterminer comment   implémenter un framework de plugin simple   pour un service que nous mettons en œuvre que   permet différents types de calculatrices   être "branché".

Je pense que vous pourriez essayer JSPF et voir à quelle distance vous êtes dans une heure ou deux.

Cependant, la décision finale dépend aussi un peu de ce que vous voulez réaliser et des circonstances spécifiques.

J'ai entendu les résultats positifs d'un certain nombre de personnes l'utilisant pour structurer leurs projets ou charger des plug-ins dans leurs projets. D'autre part, je connais aussi une personne de notre département qui l'a rejetée parce qu'elle ne pensait pas que cela se mêlait bien à son style de programmation.

Donc, pour répondre brièvement à votre question (et sûrement de manière partiale), j’utiliserais

OSGi pour les projets et les équipes

  • qui sont grandes et ont beaucoup de gens qui y travaillent
  • qui justifie les frais généraux liés à la mise en place de l'infrastructure
  • ayant besoin des services spécifiques offerts

JPF pour les projets et les équipes

  • de taille moyenne (?, honnêtement, je ne suis pas sûr de la taille du projet / de l'équipe qu'ils ciblent)
  • qui ont besoin d'installations plus structurées pour organiser leur code, telles que les configurations XML, la gestion détaillée du cycle de vie des plugins, les plugins extensibles ...

JSPF pour les projets et les équipes

  • de petite taille, suivant un paradigme agile
  • qui a juste besoin de quelque chose qui fonctionne immédiatement, sans besoin de configuration ou d'installation
  • prêt à sacrifier certaines fonctionnalités pour plus de simplicité

J'espère que vous trouvez le framework de plug-in le mieux adapté à votre scénario. Et, peu importe ce que vous essayez, je serais heureux d'entendre parler de vos résultats.

Si vous avez besoin d'une solution très simple, essayez jin-plugin . C'est un framework de plugin minimaliste pour Java et PHP.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top