Le fichier manifeste d'application contient des métadonnées qui permettent à l'infrastructure OSGi de traiter les aspects modulaires des bundles.
Manifest-Version: 1.0
Application-Name: OSGi Blog Application
Application-SymbolicName: com.ibm.ws.eba.example.blog.app
Application-Version: 1.0.0
Application-Content: com.ibm.ws.eba.example.blog.api;version=1.0.0,
com.ibm.ws.eba.example.blog.persistence;version=1.0.0,
com.ibm.ws.eba.example.blog.web;version=1.0.0,
com.ibm.ws.eba.example.blog;version=1.0.0,
com.ibm.json.java;version="1.0.0"
Application-ManifestVersion: 1.0
Application-ImportService: com.ibm.ws.eba.counter.Greet
Application-ExportService: com.ibm.ws.eba.example.blog.api.BloggingService
Nom symbolique unique de l'application OSGi, qui utilise une notation de package similaire à Java™.
Version de l'application, qui utilise la syntaxe OSGi pour une version de bundle.
Nom de l'application.
Déclare les dépendances externes du bundle qui sont utilisées par l'infrastructure OSGi pour la résolution de bundle. Des versions ou des plages de versions spécifiques peuvent être déclarées pour chaque service.
Ensemble de filtres des services externes que l'application consomme. Le manifeste de l'application doit contenir les classes requises par les services. Si cet en-tête n'est pas spécifié, aucun des services requis n'est importé.
<identificateur de service>;<directives>;<attributs>
Exemple : test.it;filter="un_filtre"
L'en-tête Application-ImportService possède l'attribut suivant :Déclare les services qui sont visibles hors du bundle. Tout service non déclaré ici n'est visible qu'au sein du bundle.
Ensemble de filtres des services externes que l'application génère. Si cet en-tête n'est pas spécifié, aucun des services requis n'est exporté.
<identificateur de service>;<directives>;<attributs>
Exemple : test.it;filter="un_filtre"
L'en-tête Application-ExportService possède l'attribut suivant :Un bundle partagé qui fournit au moins un package à un bundle d'applications.
Liste de bundles ou de bundles composite à utiliser pour satisfaire les dépendances de package des bundles dans la liste Application-Content. Chaque bundle ou bundle composite de la liste Use-Bundle doit fournir au moins un package à au moins un bundle de la liste Application-Content. Ces bundles sont fournis dans l'espace des bundles partagés lors de l'exécution.
Souvent, l'en-tête Use-Bundle n'est pas nécessaire, mais il peut être utile dans certains cas. Vous pouvez l'utiliser pour restreindre le niveau sur lequel le partage est possible. Par exemple, vous pouvez vous assurer qu'une application utilise le même bundle pour les importations de package que celui avec lequel elle a été testée. Sinon, vous pouvez vous assurer que deux applications utilisent le même bundle pour des importations de package. Le fait de définir la restriction au niveau de l'application permet au bundle de rester flexible.
Liste de projets Web dynamiques non OSGi qui sont inclus dans l'application.
Cet en-tête ne fait pas partie de la norme OSGi.
<identificateur de module>;<directives>;<attributs>
En général, l'identificateur de module est le nom symbolique d'un bundle. Pour référencer une ressource qui n'est pas un bundle, l'identificateur de module est le chemin d'accès relatif à la racine de l'application OSGi.
L'en-tête Application-Content définit les applications importantes qui composent les services métier mais ne définit pas la liste complète des bundles dans l'application. Si un bundle répertorié dans le contenu utilise un package qui n'est pas inclus dans l'application, les dépendances sont analysées et tout bundle manquant est inclus. Ces bundles ne peuvent pas fournir de services externes à l'application et la sécurité ne peut pas leur être appliquée. Les bundles qui sont inclus avec ce mécanisme sont partagés.