Le manifeste de déploiement, META-INF/DEPLOYMENT.MF, spécifie tous les bundles qui constituent l'application, notamment les bundles qui sont requis suite à l'analyse des dépendances. Le manifeste de déploiement spécifie la version réelle de chaque bundle qui est utilisé dans l'application. Il est créé automatiquement lorsqu'un actif EBA est installé et il garantit que chaque fois qu'un serveur d'applications démarre, les bundles qui constituent l'application sont les mêmes.
Une fois qu'une application est installée, la version d'un bundle peut être mise à jour en configurant l'actif EBA.
Le code suivant est un exemple de contenu d'un fichier de manifeste de déploiement :
Manifest-Version: 1.0
Deployed-Content: bundle1;deployed-version=1.0.0.qualifier
Application-SymbolicName: bundle.app
Application-Version: 1.0.0.qualifier
Import-Package: javax.servlet.jsp;version="2.0.0",javax.persistence;ve
rsion="0.0.0",javax.servlet.http;version="2.5.0",javax.servlet;versio
n="2.5.0",javax.servlet.jsp.el;version="2.0.0",javax.servlet.jsp.tage
xt;version="2.0.0",javax.el;version="2.0.0"
Un manifeste de déploiement
contient les en-têtes suivants :
- Manifest-Version
- Numéro de version pour le format du manifeste.
- Application-SymbolicName
- Nom symbolique unique de l'application, qui utilise une notation de package similaire à Java™. Il correspond à la valeur Application-SymbolicName définie dans le manifeste de l'application.
- Application-Version
- Version de l'application, qui utilise la syntaxe OSGi pour une version de bundle. Elle correspond à la valeur Application-Version définie dans le manifeste de l'application.
- Deployed-Content
Liste des noms symbolique des bundles, séparés par une virgule, et des versions exactes à utiliser.
La liste inclut tous les bundles qui sont répertoriés dans l'en-tête Application-Content du manifeste de l'application ainsi que les bundles qui sont importés par l'analyse des dépendances. Les types de module autres qu'OSGi sont inclus en utilisant le nom symbolique du bundle converti.
L'en-tête Deployed-Content présente la directive suivante :
- deployed-version
- Version exacte du bundle, qui est spécifiée avec la syntaxe OSGi des versions.
- Deployed-Use-Bundle
- Liste de bundles ou de bundles composites qui satisfont les dépendances de package des bundles
dans la liste Deployed-Content. Chaque élément de la liste Deployed-Use-Content doit fournir au moins un package à au moins un bundle de la liste Deployed-Content. La liste Deployed-Use-Bundle est un sous-ensemble
exact de la liste Use-Bundle. Ces bundles sont chargés dans l'espace des bundles partagés lors de l'exécution. Un administrateur peut
mettre à jour les bundles mappés dans la liste Deployed-Use-Bundle à partir
de la liste Use-Bundle après le déploiement de l'application.
- Provision-Bundle
- Liste des bundles et des bundles composites supplémentaires requis suite à la résolution de l'application OSGi. Chaque bundle ou bundle composite est chargé dans l'espace des bundles partagés lors de l'exécution ; ils ne sont pas forcément requis. Un administrateur
ne peut pas mettre à jour les bundles dans la liste
Provision-Bundle après le déploiement de l'application.
- Import-Package
- Liste des packages utilisés par les bundles de la liste Deployed-Content
à partir des bundles et des bundles composites des listes Deployed-Use-Bundle et Provision-Bundle. Pour les packages qui sont consommés à partir de la liste Deployed-Use-Bundle, l'importation de package possède les attributs ;bundle-symbolic-name et ;bundle-version.