アプリケーション・マニフェスト・ファイルには、OSGi フレームワークがバンドルのモジュラー・アスペクトを処理できるようにするメタデータが含まれます。
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
Java™ に類似するパッケージ記法を使用した、OSGi アプリケーションの固有のシンボル名。
バンドル・バージョンに OSGi 構文を使用した、アプリケーションのバージョン。
アプリケーションの名前。
バンドルの解決のために OSGi Framework で使用されるバンドルの外部依存関係を宣言します。各サービスの特定のバージョンまたはバージョン範囲を宣言できます。
アプリケーションが消費する外部サービス用のフィルターのセット。アプリケーション・マニフェストには、サービスが要求するクラスが含まれている必要があります。このヘッダーが指定されていない場合、要求されたサービスはインポートされません。
<サービス ID>;<ディレクティブ>;<属性>
例えば、以下のようになります。
test.it;filter="some_filter"
Application-ImportService ヘッダーには、以下の属性があります。バンドル外部で可視のサービスを宣言します。ここで宣言されないサービスは、バンドル内でのみ可視となります。
アプリケーションが生成する外部サービス用のフィルターのセット。このヘッダーが指定されていない場合、要求されたサービスはエクスポートされません。
<サービス ID>;<ディレクティブ>;<属性>
例えば、以下のようになります。
test.it;filter="some_filter"
Application-ExportService ヘッダーには、以下の属性があります。少なくとも 1 つのパッケージをアプリケーション・バンドルに提供する共有バンドル。
Application-Content リスト内のバンドルのパッケージ依存関係を満たすために 使用するバンドルまたはコンポジット・バンドルのリスト。Use-Bundle リスト内の各バンドルまたは コンポジット・バンドルは、Application-Content リスト内の少なくとも 1 つのバンドルに対して、 少なくとも 1 つのパッケージを提供する必要があります。これらのバンドルは、実行時に共有バンドル・スペースにプロビジョンされます。
Use-Bundle ヘッダーは 不要なことが多いものの、これがあると便利な場合もあります。 このヘッダーは、共有が可能になるレベルを制限するために使用できます。 例えば、1 つのアプリケーションが、パッケージ・インポートで、 既にテスト済みの同じバンドルを確実に使用するように指定できます。 あるいは、2 つのアプリケーションがパッケージ・インポートで同じバンドルを 確実に使用するように指定できます。アプリケーション・レベルでの制限を設定すると、 バンドルを柔軟に保つことができます。
アプリケーションに含まれる非 OSGi 動的 Web プロジェクトのリスト。
このヘッダーは、OSGi 標準の一部ではありません。
<module identifier>;<directives>;<attributes>
通常、モジュール ID はバンドルのシンボル名です。バンドルされていないリソースを参照するために、 モジュール ID は、OSGi アプリケーション・ルートへの相対パスです。
Application-Content ヘッダーは、ビジネス・サービスを構成する重要なアプリケーションを定義しますが、アプリケーション内の全バンドル・リストを定義するわけではありません。 コンテンツにリストされているバンドルが、アプリケーションに含まれていないパッケージを使用する場合、 依存関係分析が実行され、欠落したすべてのバンドルが組み込まれます。 これらのバンドルはアプリケーション外部のサービスを提供できず、それらにセキュリティーを適用することができません。このメカニズムを使用して組み込まれるバンドルは共有されます。