Pouvez-vous avoir des composants personnalisés JSF dans différents bundles OSGi?

StackOverflow https://stackoverflow.com/questions/203629

  •  03-07-2019
  •  | 
  •  

Question

Quelqu'un at-il utilisé OSGi et JSF ensemble?

Je demande parce que JSF utilise la magie du chargeur de classe pour trouver des composants personnalisés. À partir d'un tutoriel (c'est moi qui souligne):

  

Ce fichier de configuration finira par   en étant META-INF / faces-config.xml dans le   fichier .jar qui représente cela   composant. JSF recherchera un tel   nom de fichier dans chacun des fichiers .jar   chargés au moment de l'exécution (dans la   Répertoire WEB-INF / lib pour les fichiers .war)   et utiliser chacun d'eux dans son   configuration. De cette façon, plusieurs   les fichiers .jar composant peuvent être combinés   dans une application Web, et tous   les composants décrits dans chaque .jar   sera disponible pour l'application.

J'aimerais pouvoir utiliser les composants personnalisés JSF en tant que bundles OSGi (c.-à-d. que les composants personnalisés appartiennent à des bundles OSGi différents de ceux du moteur d'exécution JSF) et que JSF puisse les trouver au moment de l'exécution.

Quelqu'un a-t-il fait quelque chose de similaire?

Était-ce utile?

La solution

Cela est possible de la manière suivante:

  • Votre offre Web osgi doit comporter "Require-Bundle". dans MANIFEST.MF pointant vers l’ensemble contenant les composants
  • Votre fichier JAR de composant doit contenir Export-Package contenant META-INF et des sous-packages de META-INF contenant un fichier associé à JSF (et bien sûr des packages standard du composant). Par exemple: Export-Package: META-INF, META-INF.resources ...

Si vous utilisez le plug-in maven-bundle, vous devez utiliser une apostrophe et un équivalent pour exporter META-INF et ses sous-packages. Par exemple:

<Export-Package>
  a.b.c,
  '=META-INF',
  '=META-INF.resources',
  ...
</Export-Package>

Dans la spécification JSF 2.2, il pourrait y avoir des éléments concernant la relation JSF-OSGI. Pour voir les progrès, voir http://java.net/jira/browse/JAVASERVERFACES_SPEC_PEC_PUBLIC-942

Autres conseils

Je ne suis pas sûr qu'il réponde exactement à votre problème, mais j'ai trouvé ce fil de discussion sur Le printemps et osgi sont interressants, en particulier réponse spécifique où les dépendances et le chemin d'accès aux classes sont regroupés dans le fichier MANIFEST.MF.

Ce fil mène également à la mise à jour de ce fichier pour le didacticiel sur les modules dynamiques Spring (DM) pour OSGi & # 8482; Plates-formes de services qui pourraient également présenter un intérêt.

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