コンポジット・バンドルは、バンドルを集合体にグループ化して、動作を一貫性のあるものにします。 コンポジット・バンドルには、バンドルが含まれるか、あるいはワークスペースまたはターゲット・プラットフォームの外部のバンドルへの参照が含まれます。 コンポジット・バンドルを使用すると、特定のバージョンの共有バンドルのセットが、確実に一貫性のある動作をするようになります。
コンポジット・バンドル・アーカイブ (CBA) は、共有バンドルを集合体にまとめます。CBA には、OSGi バンドルを含めるか、内部バンドル・リポジトリーでホストされている参照バンドルを含めることができます。共有バンドルのセット間の動作を確実に整合させたい場合に、CBA を作成します。CBA を使用すれば、バンドルのセットを特定のバージョンでアプリケーションにワイヤリングすることができます。
CBA は .cba ファイル拡張子の付いたアーカイブ・ファイルです。 このアーカイブ・ファイルには、複合マニフェスト META-INF/COMPOSITEBUNDLE.MF が含まれています。これは CBA、およびオプションでリポジトリーにシードする OSGi バンドルを定義します。バージョン範囲でバンドルを定義する EBA とは対照的に、CBA が含むあるいは参照するバンドルは、厳密なバージョンで定義されています。
コンポジット・バンドルは、ランタイムの内部バンドル・リポジトリーにインストールされます。 CBA に直接 OSGi バンドルが含まれる場合、それらのバンドルは、個別にアップロードされたかのようにリポジトリーにインストールされます。さらに、CBA もバンドル・リポジトリーに追加されます。CBA が OSGi バンドルを参照する場合は、それらのバンドルは、内部バンドル・リポジトリーになければなりません。
CBA が内部バンドル・リポジトリーにインストールされると、そのバンドルは、アプリケーションの解決時にバンドルを使用するすべてのアプリケーションで使用可能になります。必要なパッケージまたはサービスをバンドルと CBA のどちらからでも同じバージョンで使用できる場合、 プロビジョニング・プロセスは CBA からそのパッケージまたはサービスを選択します。
<module identifier>;<directives>;<attributes>
複合バンドル内に存在し、複合バンドルの外部で使用するためにエクスポートできるサービスを 識別するサービス・インターフェース名とオプション・フィルターのリスト。 エクスポート対象のサービスが実装するインターフェースは、 それらのインターフェースが複合バンドルの外部で可視になっている場合には 複合バンドルの外部で使用できます。
複合バンドルの外部から複合バンドルのコンテンツが使用する サービスを識別するサービス・インターフェース名とオプション・フィルターのリスト。 そのようなサービスは、ランタイムで少なくとも 1 つ存在する必要があります。