デプロイメント・マニフェスト META-INF/DEPLOYMENT.MF は、依存関係分析後に必要なバンドルを含む、アプリケーションを構成するすべてのバンドルを指定します。デプロイメント・マニフェストは、アプリケーション内で使用される各バンドルの実際のバージョンを指定します。これは EBA アセットがインストールされる際に
自動的に作成され、アプリケーション・サーバーが開始されるたびにアプリケーションを構成するバンドルが同じであることを保証します。
アプリケーションのインストール後、EBA アセットを構成することによって、バンドルのバージョンを更新できます。
以下のコードは、デプロイメント・マニフェスト・ファイルのコンテンツの例です。
Manifest-Version: 1.0
Deployed-Content: bundle1;deployed-version=1.0.0.qualifier
Application-SymbolicName: bundle.app
Application-Version: 1.0.0.qualifier
Import-Package: javax.servlet.jsp;version="2.0.0",javax.persistence;ve
rsion="0.0.0",javax.servlet.http;version="2.5.0",javax.servlet;versio
n="2.5.0",javax.servlet.jsp.el;version="2.0.0",javax.servlet.jsp.tage
xt;version="2.0.0",javax.el;version="2.0.0"
デプロイメント・マニフェストには、以下のヘッダーが含まれます。
- Manifest-Version
- マニフェスト形式のバージョン番号。
- Application-SymbolicName
- Java™ に似たパッケージ記法を使用した、アプリケーションの固有のシンボル名。この
シンボル名は、アプリケーション・マニフェストの Application-SymbolicName 値に一致します。
- Application-Version
- バンドル・バージョンの OSGi 構文を使用した、アプリケーションの
バージョン。このバージョンは、アプリケーション・マニフェストの Application-Version 値に一致します。
- Deployed-Content
使用されるバンドルのシンボル名と正確なバージョンのコンマ区切りリスト。
このリストには、アプリケーション・マニフェストの Application-Content ヘッダーにリストされているすべてのバンドルと、依存関係分析によりインポートされるバンドルが含まれます。
変換されたバンドルのシンボル名を使用して、非 OSGi モジュール・タイプが含まれます。
Deployed-Content ヘッダーには、以下のディレクティブがあります。
- deployed-version
- バージョンの OSGi 構文を使用して指定される、バンドルの正確なバージョン。
- Deployed-Use-Bundle
- Deployed-Content リスト内のバンドルのパッケージ依存関係を満たす
バンドルまたは複合バンドルのリスト。Deployed-Use-Content リスト内の
各要素は、Deployed-Content リスト内の少なくとも 1 つのバンドルに対して、
少なくとも 1 つのパッケージを提供する必要があります。Deployed-Use-Bundle リストは、Use-Bundle リストの厳密なサブセットです。これらのバンドルは、ランタイムで共有バンドル・スペースにロードされます。管理者は、アプリケーション・デプロイメント後、Use-Bundle リストから Deployed-Use-Bundle リストにマップされるバンドルを更新できます。
- Provision-Bundle
- OSGi アプリケーションの解決の結果として必要となる追加バンドルおよび
複合バンドルのリスト。各バンドルまたは複合バンドルは実行時に共有バンドル・スペースにロードされますが、
これらは使用しない場合もあります。管理者は、アプリケーション・デプロイメント後、Provision-Bundle リストのバンドルを更新できません。
- Import-Package
- Deployed-Content リスト内のバンドルが、Deployed-Use-Bundle および Provision-Bundle リスト内の
バンドルおよび複合バンドルから消費するパッケージのリスト。Deployed-Use-Bundle リストから消費されるパッケージについては、パッケージ・インポートが ;bundle-symbolic-name 属性、および ;bundle-version 属性を持ちます。