Développement d'un bundle composite

Un bundle composite se compose de bundles partagés regroupés en agrégats. Il fournit un ou plusieurs packages à des versions spécifiques pour une application OSGi. Vous pouvez également étendre une application déployée en ajoutant un ou plusieurs bundles composites à l'unité de composition pour l'application. Vous pouvez utiliser les outils d'application OSGi pour développer un bundle composite.

A propos de cette tâche

Lorsque vous souhaitez vérifier que le comportement d'un ensemble de bundles partagés est cohérent dans une application OSGi, utilisez un bundle composite pour mettre cet ensemble de bundles à la disposition de l'application. Si un service ou un package requis est disponible avec la même version depuis un bundle et un bundle composite, le processus de mise à disposition sélectionne le package ou le service dans le bundle composite.

Lorsque vous souhaitez étendre une application de niveau métier déployée qui contient une application OSGi et que vous ne souhaitez pas arrêter l'application ou modifier l'actif EBA sous-jacent, vous ajoutez un ou plusieurs bundles composites à l'unité de composition.

Un bundle composite est conditionné en tant que fichier CBA (composite bundle archive). Ce fichier est un fichier d'archive compressé ayant l'extension .cba. Si le bundle composite fait partie d'une application OSGi d'entreprise, le fichier CBA peut se trouver directement dans le fichier EBA (enterprise bundle archive) pour l'application ou être récupéré par référence du référentiel de bundles interne ou d'un référentiel externe pouvant traiter des bundles composites. Un bundle composite peut directement contenir des bundles dans son fichier CBA. Il peut également inclure par référence des bundles hébergés avec le fichier CBA dans le même fichier EBA ou des bundles installés dans le même référentiel de bundles.

Un bundle composite est décrit dans un fichier manifeste de bundle composite, META-INF/COMPOSITEBUNDLE.MF. Le fichier de manifeste répertorie les bundles OSGi se trouvant directement dans le bundle composite et les bundles de référence hébergés avec le bundle composite dans le même fichier EBA ou dans le même référentiel de bundles.

Si vous souhaitez utiliser le bundle composite pour étendre une application déployée, vous devez installer le fichier CBA dans le référentiel de bundles interne ou dans un référentiel externe pouvant traiter des bundles composites. Si vous installez un bundle composite dans un référentiel de bundles et que le bundle composite inclut des bundles par référence, vous devez vous assurer que les bundles référencés sont également disponibles dans le même référentiel. Si vous utilisez le référentiel de bundles interne et que le bundle composite contient directement des bundles, ces derniers ne sont pas répertoriés séparément et sont disponibles uniquement en tant que partie du bundle composite. Pour plus d'informations, voir Bundles composites.

Les instructions de conception d'application OSGi version 8.5 fournissent une prise en charge graphique pour la création et le conditionnement de bundles composites. Vous pouvez également utiliser d'autres outils.

Procédure

  1. Développez les bundles.
  2. Créez le manifeste de bundle composite.

    La plupart des outils d'application OSGi, y compris IBM® Rational® Application Developer, vous aident à créer le manifeste de bundle composite. Voir aussi Exemple: fichier manifeste de bundle composite OSGi.

  3. Conditionnez les bundles contenus directement et le manifeste de bundle composite sous la forme d'un fichier compressé avec une extension de fichier .cba .
    Remarque: L'extension de fichier doit être.cba, mais le nom du bundle composite n'a pas besoin d'inclure cba.
  4. Vérifiez que tous les bundles référencés sont disponibles dans le fichier EBA (si le bundle composite fait partie d'une application OSGi d'entreprise) ou dans un référentiel de bundles pouvant traiter les bundles composites (comme le référentiel de bundles interne).
  5. Ajoutez le fichier CBA au fichier EBA ou au référentiel de bundles.

Etape suivante