2008-10-15 3 views
2

Est-ce que quelqu'un a utilisé OSGi et JSF ensemble?Pouvez-vous avoir des composants personnalisés JSF dans différents bundles OSGi?

Je demande parce que JSF utilise la magie de classe-chargeur pour trouver des composants personnalisés. D'un tutoriel (Souligné par l'auteur):

Ce fichier de configuration va finir par être META-INF/faces-config.xml dans le fichier .jar qui représente cette composante . JSF recherchera un nom de fichier dans chacun des fichiers .jar qui sont chargés lors de l'exécution (dans le répertoire WEB-INF/lib pour les fichiers .war) et utiliser chacun d'entre eux dans sa configuration . De cette façon, plusieurs fichiers .jar peuvent être combinés dans une application Web, et tous les composants décrits dans chaque .jar seront disponibles pour l'application.

Je voudrais être en mesure d'avoir des composants JSF personnalisés comme bundles OSGi (à savoir des composants personnalisés sont dans différents bundles OSGi que le moteur d'exécution JSF) et JSF pour être en mesure de trouver ces lors de l'exécution.

Est-ce que quelqu'un a fait quelque chose de similaire?

Répondre

1

Il est possible de la façon suivante:

  • Votre paquet osgi Web doit avoir « Require-Bundle » en MANIFEST.MF pointant vers le paquet qui contient les composants
  • Votre pot composant doit avoir Export-Package contenant META-INF et les sous-paquets de META-INF où il y a un fichier JSF (et bien sûr des paquets standard du composant). Par exemple: Export-Package: META-INF, Méta-INF.resources ...

Si vous utilisez plugin Maven-bundle vous devez utiliser une apostrophe et un égal pour l'exportation META-INF et sous-packages. Par exemple:

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

En JSF Spec 2.2, il peut y avoir des parties sur la relation JSF-OSGI. Pour voir les progrès, voir http://java.net/jira/browse/JAVASERVERFACES_SPEC_PUBLIC-942

Questions connexes