15.4. Wrap URL ハンドラー

15.4.1. 概要

まだバンドルとしてパッケージ化されていない JAR ファイルを参照する必要がある場合は、Wrap URL ハンドラーを使用して動的に変換できます。Wrap URL ハンドラーの実装は、Peter Krien のオープンソース Bnd ユーティリティーに基づいています。

15.4.2. 構文

Wrap URL の構文は次のとおりです。

wrap:locationURL[,instructionsURL][$instructions]

locationURL は、JAR を検索する任意の URL にすることができます (参照される JAR がバンドルとしてフォーマットされて いない 場合)。オプションの instructionsURL は、バンドル変換の実行方法を指定する Bnd プロパティーファイルを参照します。任意の instructions は、バンドル変換の実行方法を指定する、アンパサンド & で区切られた Bnd プロパティーのリストです。

15.4.3. デフォルトの手順

ほとんどの場合、API JAR ファイルをラップするには、デフォルトの Bnd 命令で十分です。デフォルトでは、Wrap は、表15.1「JAR をラッピングするデフォルトの命令」 に示されているようにマニフェストヘッダーを JAR の META-INF/Manifest.mf ファイルに追加します。

表15.1 JAR をラッピングするデフォルトの命令

マニフェストヘッダーデフォルト値

Import-Package

*;resolution:=optional

Export-Package

ラップされた JAR からのすべてのパッケージ。

Bundle-SymbolicName

JAR ファイルの名前。セット [a-zA-Z0-9_-] にない文字はすべてアンダースコア _ に置き換えられます。

15.4.4. 例

以下の Wrap URL は、Maven リポジトリーでバージョン 1.1 の commons-logging JAR のを見つけ、デフォルトの Bnd プロパティーを使用してこれを OSGi バンドルに変換します。

wrap:mvn:commons-logging/commons-logging/1.1

以下の Wrap URL は、ファイル E:\Data\Examples\commons-logging-1.1.bnd からの Bnd プロパティーを使用します。

wrap:mvn:commons-logging/commons-logging/1.1,file:E:/Data/Examples/commons-logging-1.1.bnd

以下の Wrap URL は、Bundle-SymbolicName プロパティーと Bundle-Version プロパティーを明示的に指定します。

wrap:mvn:commons-logging/commons-logging/1.1$Bundle-SymbolicName=apache-comm-log&Bundle-Version=1.1

上記の URL をコマンドライン引数として使用する場合は、以下のようにドル記号を \$ のようにエスケープしてコマンドラインで処理されないようにする必要がある場合があります。

wrap:mvn:commons-logging/commons-logging/1.1\$Bundle-SymbolicName=apache-comm-log&Bundle-Version=1.1

15.4.5. 参照資料

wrap URL ハンドラーの詳細は、以下の参考資料を参照してください。