Bundles composites OSGi

Un bundle composite regroupe plusieurs bundles classiques en un agrégat qui garantit un comportement cohérent. Il contient des bundles ou des références à des bundles hors de l'espace de travail ou de la plateforme cible. Il assure un comportement cohérent à partir d'un ensemble de bundles partagés dans une version spécifique.

Une archive de bundle composite (CBA) regroupe des bundles partagés en agrégats. Elle peut contenir des bundles OSGi ou référencer des bundles qui sont hébergés dans le référentiel de bundles interne. Créez une archive de bundle composite si vous voulez garantir un comportement cohérent dans un ensemble de bundles partagés. Vous pouvez utiliser l'archive de bundle composite pour connecter cet ensemble de bundles, à une version spécifique, à une application.

Une archive de bundle composite est un fichier d'archive dont l'extension de fichier est .cba. Elle contient un manifeste de composite META-INF/COMPOSITEBUNDLE.MF, qui la définit, et en option, des bundles OSGi avec lesquels alimenter le référentiel. Les bundles qu'une archive de bundle composite contient ou référence sont définis avec des versions exactes, contrairement à un fichier EBA, pour lesquels les bundles sont définis avec des plages de versions.

Un bundle composite est installé dans le référentiel de bundles interne de l'environnement d'exécution. Si l'archive de bundle composite contient des bundles OSGi, ces bundles sont installés dans le référentiel comme s'ils avaient été téléchargés individuellement. L'archive de bundle composite est également ajoutée au référentiel de bundles. Si elle référence des bundles OSGi, ceux-ci doivent être présents dans le référentiel de bundles interne.

Après l'installation d'une archive de bundle composite dans le référentiel de bundles interne, ses bundles sont disponibles pour toutes les applications qui veulent utiliser les bundles lorsque l'application est résolue. Si un package ou un service requis est disponible avec la même version depuis un bundle et une archive de bundle composite, le processus de mise à disposition sélectionne le module ou le service de l'archive de bundle composite.

Les différences entre une archive de bundle composite et un fichier EBA sont les suivantes :

Fichier manifeste de bundle composite OSGi

Les métadonnées figurant dans ce fichier incluent les propriétés principales suivantes :
Manifest-Version
Décrit la version du fichier manifeste.
CompositeBundle-ManifestVersion
Décrit la version du bundle composite.
Bundle-Name
Fournit un nom lisible pour un bundle composite.
Si vous ne renseignez pas cette zone, la valeur par défaut est le nom symbolique du bundle composite.
Bundle-SymbolicName
Identifie de manière unique un bundle composite dans l'infrastructure. Ce nom ne dispense pas d'attribuer un en-tête Bundle-Name.
Bundle-Version
Décrit la version du bundle composite et permet à plusieurs versions d'un bundle composite d'être actives simultanément dans la même instance d'infrastructure.
CompositeBundle-Content
Liste des bundles et des fragments de bundle dans le bundle composite. Tous les bundles et tous les fragments doivent être disponibles pour le déploiement et se trouver dans le fichier cba ou exister dans le référentiel de bundles local. Les bundles et les fragments doivent avoir les mêmes numéros de version exactement. Si vous avez besoin du même bundle composite avec différentes versions de son contenu, vous devez créer différentes versions du bundle composite, une version pour chaque utilisation.
Le format est une liste, dont les éléments sont séparés par des virgules, des déclarations de module où chaque déclaration de module utilise le format suivant :
<identificateur de module>;<directives>;<attributs>
L'en-tête CompositeBundle-Content possède l'attribut suivant :
version
La version du module est spécifiée avec la syntaxe OSGi pour une plage de versions. Elle doit être spécifiée sous forme de plage exacte, par exemple "[1.0.0,1.0.0]".
Import-Package
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 package.
Utilisez cette propriété pour spécifier les noms des packages que votre bundle doit importer depuis l'environnement d'exécution. Si vous ne spécifiez pas le package dont votre bundle a besoin dans cette propriété, l'exception NoClassDefFound peut être émise lors du chargement du bundle.
Note: Vous devez aussi spécifier le package à importer (avec Import-Package) dans la propriété Export-Package du bundle contenant le package.
Export-Package
Déclare les packages qui sont visibles hors du bundle. Tout package non déclaré ici ne sera visible qu'au sein du bundle.
Utilisez cette propriété pour spécifier le nom des packages que votre bundle doit exporter vers l'environnement d'exécution. Si vous ne spécifiez pas les packages requis par d'autres bundles dans cette propriété, il se peut que les bundles dépendants ne soient pas résolus.
CompositeBundle-ExportService

Liste de noms d'interface de service et de filtres facultatifs qui identifient les services présents dans le bundle composite et peuvent être exportés pour une utilisation en dehors du bundle composite. Les interfaces implémentées par un service exporté sont utilisables en dehors du bundle composite si elles sont visibles en dehors du bundle composite.

Le format est une liste des services, dans laquelle chaque élément est séparé par une virgule, sous la forme d'un nom d'interface de service, suivi d'attributs ou de directives. L'en-tête CompositeBundle-ExportService possède l'attribut suivant :
filter
Filtre de service OSGi.
CompositeBundle-ImportService

Liste de noms d'interface de service et de filtres facultatifs qui identifient les services que le bundle composite souhaite utiliser hors du bundle composite. Au moins un de ces services doit exister lors de l'exécution.

Le format est une liste des services, dans laquelle chaque élément est séparé par une virgule, sous la forme d'un nom d'interface de service, suivi d'attributs ou de directives. L'en-tête CompositeBundle-ImportService possède l'attribut suivant :
filter
Filtre de service OSGi.
Icône indiquant le type de rubrique Rubrique
Dispositions pour les centres de documentation | Commentaires en retour

Icône d'horodatage Dernière mise à jour: May 29, 2014 10:11

Nom de fichier : ccba.html