アプリケーション・マニフェスト・ファイル

アプリケーション・マニフェスト・ファイルには、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
アプリケーション・マニフェストには、以下のヘッダーを入れることができます。
Application-SymbolicName

Java™ に類似するパッケージ記法を使用した、OSGi アプリケーションの固有のシンボル名。

Application-Version

バンドル・バージョンに OSGi 構文を使用した、アプリケーションのバージョン。

Application-Name

アプリケーションの名前。

Application-ImportService

バンドルの解決のために OSGi Framework で使用されるバンドルの外部依存関係を宣言します。各サービスの特定のバージョンまたはバージョン範囲を宣言できます。

アプリケーションが消費する外部サービス用のフィルターのセット。アプリケーション・マニフェストには、サービスが要求するクラスが含まれている必要があります。このヘッダーが指定されていない場合、要求されたサービスはインポートされません。

要求するサービスを、先頭にサービス・インターフェース名、そのあとに属性またはディレクティブが続く、コンマ区切りのリストで指定します。
<サービス ID>;<ディレクティブ>;<属性>
例えば、以下のようになります。
test.it;filter="some_filter"
Application-ImportService ヘッダーには、以下の属性があります。
filter
OSGi サービス・フィルター。
Application-ExportService

バンドル外部で可視のサービスを宣言します。ここで宣言されないサービスは、バンドル内でのみ可視となります。

アプリケーションが生成する外部サービス用のフィルターのセット。このヘッダーが指定されていない場合、要求されたサービスはエクスポートされません。

エクスポートするサービスを、先頭にサービス・インターフェース名、そのあとに属性またはディレクティブが続く、コンマ区切りのリストで指定します。
<サービス ID>;<ディレクティブ>;<属性>
例えば、以下のようになります。
test.it;filter="some_filter"
Application-ExportService ヘッダーには、以下の属性があります。
filter
OSGi サービス・フィルター。
Use-Bundle

少なくとも 1 つのパッケージをアプリケーション・バンドルに提供する共有バンドル。

Application-Content リスト内のバンドルのパッケージ依存関係を満たすために 使用するバンドルまたはコンポジット・バンドルのリスト。Use-Bundle リスト内の各バンドルまたは コンポジット・バンドルは、Application-Content リスト内の少なくとも 1 つのバンドルに対して、 少なくとも 1 つのパッケージを提供する必要があります。これらのバンドルは、実行時に共有バンドル・スペースにプロビジョンされます。

Use-Bundle ヘッダーは 不要なことが多いものの、これがあると便利な場合もあります。 このヘッダーは、共有が可能になるレベルを制限するために使用できます。 例えば、1 つのアプリケーションが、パッケージ・インポートで、 既にテスト済みの同じバンドルを確実に使用するように指定できます。 あるいは、2 つのアプリケーションがパッケージ・インポートで同じバンドルを 確実に使用するように指定できます。アプリケーション・レベルでの制限を設定すると、 バンドルを柔軟に保つことができます。

Application-WebModules

アプリケーションに含まれる非 OSGi 動的 Web プロジェクトのリスト。

このヘッダーは、OSGi 標準の一部ではありません。

Application-Content
アプリケーションに含まれる、コンポジット・バンドル、バンドル・フラグメント、およびバンドルと、OSGi バージョン仕様の許容範囲のリスト。
ヒント: Application-Content リストにバンドル・フラグメントが含まれる場合、フラグメントのホスト・バンドルが含まれていることを確認します。
書式は、コンマ区切りのモジュール宣言のリストで、各モジュール宣言では、以下の書式を使用します。
<module identifier>;<directives>;<attributes>

通常、モジュール ID はバンドルのシンボル名です。バンドルされていないリソースを参照するために、 モジュール ID は、OSGi アプリケーション・ルートへの相対パスです。

Application-Content ヘッダーには、以下の属性があります。
version
モジュールのバージョンは、バージョン範囲に OSGi 構文を使用して指定します。アプリケーションの最小バージョン、およびそれに続けて、アプリケーションをアップグレードできる最大バージョンを指定します。例えば、"[1.0.0,2.0.0)" は、バージョン 1.0.0 からバージョン 2.0.0 まで (バージョン 2.0.0 は含まない) のすべてのバージョンを意味します。

Application-Content ヘッダーは、ビジネス・サービスを構成する重要なアプリケーションを定義しますが、アプリケーション内の全バンドル・リストを定義するわけではありません。 コンテンツにリストされているバンドルが、アプリケーションに含まれていないパッケージを使用する場合、 依存関係分析が実行され、欠落したすべてのバンドルが組み込まれます。 これらのバンドルはアプリケーション外部のサービスを提供できず、それらにセキュリティーを適用することができません。このメカニズムを使用して組み込まれるバンドルは共有されます。

トピックのタイプを示すアイコン 概念のトピック
インフォメーション・センターのご利用条件 | フィードバック

タイム・スタンプ・アイコン 最終更新: May 29, 2014 10:20

ファイル名: capplicationmf.html