Liberty フィーチャーを手動で作成して、Liberty プロファイルにインストールすることができます。
このタスクについて
フィーチャーは、単一の OSGi バンドルとフィーチャー・マニフェスト・ファイルから成ることができます。この例では、ライブラリーをアプリケーションから利用可能にして、デフォルトのアプリケーション・クラス・パスで外部パッケージが可視になるようにします。フィーチャー・マニフェストを ${wlp.user.dir}/extension/lib/features ディレクトリーにコピーし、
OSGi バンドルを ${wlp.user.dir}/extension/lib ディレクトリーにコピーすることで、
フィーチャーを Liberty プロファイルにインストールできます。
その後、server.xml ファイルでそのフィーチャーを使用することができます。
フィーチャー・マニフェスト・ファイルの形式について詳しくは、Liberty プロファイルのマニフェスト・ファイルを参照してください。
この例では、Liberty フィーチャーを手動で構成する方法について説明します。
あるいは、WebSphere® Application
Server Developer Tools を使用することも可能です。『開発者ツールを使用した Liberty フィーチャーの作成』を参照してください。
手順
Liberty フィーチャーを手動で作成するには、以下のステップを実行します。
- Java™ クラスを含む OSGi バンドルと、(例えばアプリケーションに公開する Java パッケージをエクスポートするための) 適切な OSGi ヘッダーを指定したバンドル・マニフェスト・ファイルを作成します。必須のヘッダーは Bundle-SymbolicName のみです。
このエントリーでは、逆ドメイン名の規則に基づいてバンドルの固有 ID を指定します。
バンドルのバージョンを指定することをお勧めします。
また、この例では、アプリケーションで使用するために、いくつかの Java パッケージがエクスポートされています。
Bundle-SymbolicName: com.usr.samplebundle
Bundle-Version: 1.0.1
Export-Package: com.usr.samplebundle.pkg1; version="1.0.0",
com.usr.samplebundle.pkg2; version="1.0.1"
- jar コマンドを使用して、Java クラスとフィーチャー・マニフェスト・ファイルをパッケージ化します。以下に例を示します。
jar cfm samplebundle.jar MANIFEST.Mf *.class
- ランタイム環境に対してフィーチャーを記述する feature-name.mf という名前のフィーチャー・マニフェスト・ファイルを作成します。
- 必要なマニフェスト・ヘッダーを指定します。
- フィーチャーの ID と可視性を指定するには、Subsystem-SymbolicName
- フィーチャーを構成するファイルを位置指定するには、Subsystem-Content
- ランタイム環境がどのバージョンのフィーチャーのサポートを必要とするかを識別するには、IBM-Feature-Version
- ベスト・プラクティス: オプションのマニフェスト・ヘッダーを追加して、サブシステム仕様の該当するバージョン (Subsystem-ManifestVersion)、フィーチャーのバージョン (Subsystem-Version)、およびフィーチャーのショート・ネーム (IBM-ShortName) を指示します。
これらの値を指定しておくと、将来、ご使用のフィーチャーを発展させる際に役立ちます。
- IBM-API-Package ヘッダーに、アプリケーションのデフォルト・クラス・ローダーで公開されるパッケージをリストします。
- オプション: 独自の Liberty フィーチャーを作成した場合は、そのフィーチャーをユーザー製品拡張にインストールします。これで、ユーザー製品拡張にインストールされている他のすべてのフィーチャーが、フィーチャー内のパッケージにアクセスできるようになります。1 つ以上の SPI パッケージを他の製品拡張のフィーチャーから利用できるようにするには、それらのパッケージを IBM-SPI-Package ヘッダーにリストします。
Subsystem-ManifestVersion: 1.0
Subsystem-SymbolicName: com.example.myfeature.sample-1.0; visibility:=public
Subsystem-Version: 1.0.0.qualifier
Subsystem-Type: osgi.subsystem.feature
Subsystem-Content: samplebundle; version="[1,1.0.100)"
IBM-Feature-Version: 2
IBM-API-Package: com.usr.samplebundle.pkg1; type="api",
com.usr.samplebundle.pkg2; type="api"
IBM-SPI-Package: com.sample.myservice.spi;
IBM-ShortName: sample-1.0
- バンドルを ${wlp.user.dir}/extension/lib ディレクトリーにコピーします。
- フィーチャー・マニフェストを ${wlp.user.dir}/extension/lib/features ディレクトリーにコピーします。
- フィーチャー・マニフェスト・ファイル内の Subsystem-Name ヘッダーおよび Subsystem-Description ヘッダーを定義済みで、その値をローカライズ済みの場合、Subsytem-Localization ヘッダーに指定されたローカリゼーション・ファイルを ${wlp.user.dir}/extension/lib/features/l10n ディレクトリーにコピーします。
タスクの結果
フィーチャーが Liberty プロファイルにインストールされると、
server.xml ファイルの構成済みフィーチャーのリストにフィーチャー名を追加できます。
以下に例を示します。
<featureManager>
<feature>usr:sample-1.0</feature>
</featureManager>