質問

OSGi バンドルでないサードパーティ製ライブラリを読み込むにはどうすればよいですか。

回答

OSGi バンドルでないサードパーティ製ライブラリをロードする 1 つのオプションは、拡張/フラグメントのバンドルを作成することです。

これはコマンドラインで次のように実行できます。例えば、書き出す必要がある com.3rdparty.libs の下にパッケージが含まれている 3rdparty.jar があるとします。

  • アプリケーションサーバーの共有クラスパスに jar を追加します。例えば、CQSE の下の crx-quickstart/server/lib/container。
  • マニフェストファイルを作成します。この例では、これを ext.mf と呼びます。このファイルの内容は次のとおりです。
    Bundle-ManifestVersion: 2 Bundle-SymbolicName: com.3rdparty.extension Bundle-Version: 1.0 Fragment-Host: system.bundle; extension:=framework Bundle-Name: H2 JDBC Driver Extension Bundle-Description: Bundle exporting com.3rdparty.libs Export-Package: com.3rdparty.libs 
    jar マニフェストファイルの末尾の空白行が必要であることに注意してください。また、書き出す必要のあるすべてのパッケージは、カンマ区切りリストとして書き出しパッケージに明示的に追加する必要があります。
  • 次のコマンドを使用して、上記のマニフェストを使用して jar ファイルを作成します。
    jar -cfm com.3rdparty.extension-1.0.jar ext.mf 
  • com.3rdparty.extension-1.0.jar を、Felix コンソールを使用してインストールするか、CQ アプリケーションのインストールフォルダーに置きます。これを実行するには、システムバンドルの書き出しリストに org.h2 パッケージを追加する必要があります。
  • 拡張バンドルについて詳しくは、「OSGi Service Platform Core」のセクション 3.15「Extension Bundles」を参照してください。

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー