2009-12-02 4 views
3

Je suis nouveau à la norme OSGi. Je veux en savoir plus sur la structure d'un fichier paquet bundle.Quelle est la structure du paquetage de paquets OSGi?

  1. trouve qu'il ya dans ce dossier OSGi-INF, la spécification mentionné au sujet l10n et la permission, je me demande où défini l'utilisation du dossier OSGI-INF? Puis-je ajouter d'autres choses?
  2. où stocker les fichiers jar référencés par le bundle?
  3. à part OSGi-INF et OSGi-OPT existe-t-il des dossiers définis par la norme OSGi?

merci beaucoup.

Répondre

2

Le seul élément de groupe OSGi obligatoire est les entrées spécifiques au regroupement dans le fichier META-INF/MANIFEST.MF.

Les options OSGi-INF et OSGi-OPT sont toutes deux facultatives.

Jetez un oeil à ce pour avoir un aperçu de ce qui fait un bundle OSGi: http://swik.net/Spring/Interface21+Team+Blog/Creating+OSGi+bundles/

et cela décrit comment DS (déclaratives Services) utilisent le dossier OSGi-INF: http://www.eclipsezone.com/eclipse/forums/t97690.html

0

OSGi bundle n'est pas différent d'un fichier JAR ordinaire, à l'exception de quelques entrées obligatoires dans le manifeste JAR, le fichier META-INF/MANIFEST.MF (comme déjà souligné par James).

Tous les autres fichiers et répertoires ne sont que des conventions et des meilleures pratiques comme par exemple les dossiers META-INF/spring ou META-INF/maven utilisés par Spring et Maven respectivement.

Certains services OSGi définissent des conventions similaires concernant l'utilisation du répertoire OSGI-INF. Pour autant que je sache, il n'y a pas de place unique dans la spécification où toutes ces conventions sont listées. Vous pouvez ouvrir le specs et chercher "OSGI-INF" pour trouver toutes les occurrences :-) Ne vous inquiétez pas, il n'y en a pas trop.

2

Vous pouvez consulter la spécification OSGi Core. Vous pouvez le télécharger à partir du OSGi Alliances website (Il est en fait très lisible). Par exemple, pour la version 4.2 de la spécification, le chapitre 3.2 discute des faisceaux et de leur structure en détail. Comme déjà mentionné dans une autre réponse, les paquets sont en fait des fichiers JAR simples avec un manifeste qui contient un couple d'en-têtes manifestes spéciaux.

Certains de ces en-têtes vous permettent également de spécifier l'emplacement de certains fichiers, par ex. dans la section 3.2.1.11 du Bundle-localisation-tête est défini:

L'en-tête Bundle-localisation contient l'emplacement dans le faisceau où les fichiers de localisation peuvent être trouvés. La valeur par défaut est OSGI-INF/l10n/bundle. Les traductions sont par défaut donc OSGI-INF/l10n/bundle_de.properties, OSGI-INF/l10n/bundle_nl.properties, etc

Questions connexes