インストール済みオプショナル・パッケージ
インストール済みオプショナル・パッケージ により、アプリケーションでは、Java™ アーカイブ (.jar) ファイルのクラスを、クラスパスに明示的に組み込むことなく使用することができます。インストール済みオプショナル・パッケージは、アプリケーション・サーバーで識別が可能なように、マニフェスト・ファイルに特殊タグを含む .jar ファイルです。インストール済みオプショナル・パッケージは、アプリケーションのマニフェスト・ファイルに 1 つ以上の共有ライブラリー .jar ファイルを宣言します。アプリケーションがサーバーまたはクラスターにインストールされると、 共有ライブラリーにより表されるクラスがアプリケーションのクラス・ローダーにロードされ、 そのクラスがアプリケーションで使用できるようになります。
Java Platform, Enterprise Edition (Java EE) アプリケーションがサーバーまたはクラスターにインストールされると、 従属情報がマニフェスト・ファイルに指定されます。製品は、アプリケーションの従属情報 (.ear ファイル) を読み取り、アプリケーションをインストール済みオプショナル・パッケージの .jar ファイルに自動的に関連付けます。 製品は、関連するオプショナル・パッケージの .jar ファイルをアプリケーション・クラスパスに追加します。これで、インストール済みオプショナル・パッケージのクラスをアプリケーション・クラスで使用できるようになります。
製品で使用されるインストール済みオプショナル・パッケージについては、Java 2 Platform, Enterprise Edition (J2EE) 仕様、バージョン 1.4 (http://docs.oracle.com/javaee/を参照) のセクション 8.2 に記載されています。
製品は、共有ライブラリー .jar ファイルおよびアプリケーション .ear ファイルにおけるマニフェスト・ファイル (manifest.mf) の使用をサポートしています。 本製品では、Java 2 Platform Standard Edition (J2SE) 仕様 (http://docs.oracle.com/javase/1.3/docs/) で使用される J2SE インストール済みオプショナル・パッケージ・セマンティクスはサポートされていません。これは主にアプレット環境で使用されます。製品は、マニフェスト・ファイル内のアプレット固有のタグを無視します。
manifest.mf サンプル・ファイル
単一の共有ライブラリー・ファイル util.jar を参照するアプリケーション app1.ear のマニフェスト・ファイルのサンプルを以下に示します。
app1.ear:
META-INF/application.xml
ejb1.jar:
META-INF/MANIFEST.MF:
Extension-List: util
util-Extension-Name: com/example/util
util-Specification-Version: 1.4
META-INF/ejb-jar.xml
util.jar:
META-INF/MANIFEST.MF:
Extension-Name: com/example/util
Specification-Title: example.com's util package
Specification-Version: 1.4
Specification-Vendor: example.com
Implementation-Version: build96
マニフェストのエントリーの構文は、エントリーが定義側のロールのメンバー (共有ライブラリー) に適用されるか、参照側のロールのメンバー (Java EE アプリケーションまたは Java EE アプリケーション内モジュール) に適用されるかによって異なります。
マニフェスト・エントリー・タグ
マニフェスト・エントリーで使用される主なタグは以下のとおりです。
- Extension-List
- 変数構文を持つ必須のタグです。参照側のロール (アプリケーションのマニフェスト) のコンテキストでは、これは、スペースで区切られたリストで、リスト内の各要素の固有の Extension-Name、Extension-Specification タグを識別し、構成します。定義側のロールのコンテキスト (共有ライブラリー) では、このタグは無効です。
- Extension-Name
- 名前を示す必須タグで、定義側と参照側のメンバーをリンクします。参照側のロール内にある 要素の構文により、<ListElement> ストリングを使用して、 その要素に接頭部が付きます。 Extension-List のエレメントごとに、 対応する <ListElement>-Extension-Name タグが存在します。 このタグの定義側のストリング・リテラル値 (前の例の com/example/util1) を使用して、定義側と参照側のロール間で対応するタグの突き合わせが行われます (等価のテストによる)。
- Specification-Version
- 仕様バージョンを識別する必須タグで、定義側と参照側のメンバーをリンクします。
- Implementation-Version
- 実装バージョンを識別するオプションのタグで、定義側と参照側のメンバーをリンクします。
これらのタグの詳細については、.jar ファイル仕様 (http://docs.oracle.com/javase/1.4.2/docs/) を参照してください。