OSGi アプリケーションのライブラリーの構成

各 OSGi アプリケーションは、一連の提供 API と、その固有の内部クラスにアクセスできます。 共有ライブラリーの追加パッケージにアクセスできるように、共有ライブラリーを構成することも可能です。

このタスクについて

各 OSGi アプリケーションには、実行中の Liberty サーバー内に固有の OSGi バンドル・セットがあります。 各 OSGi バンドルは、必要なパッケージと、他の OSGi バンドルが使用するために提供するパッケージを指定します。 OSGi アプリケーション内のバンドルは、同じ OSGi アプリケーション内の他のバンドルが提供するどのパッケージにもアクセスできます。 さらに、OSGi アプリケーション内の OSGi バンドルは、Liberty サーバーが提供する API パッケージにアクセスできます。 共有ライブラリーを使用して、OSGi アプリケーションが使用する API パッケージを提供することも可能です。

ライブラリーは、複数の OSGi アプリケーションで共有できます。Java EE アプリケーションを含むすべてのアプリケーションが、 共有ライブラリーで提供される同じクラスを実行時に使用できます。

手順

  1. ${WLP_USER_DIR} ディレクトリーの下の servers/defaultServer ディレクトリーに mylib/osgi ディレクトリーを作成します。 例えば、wlp/usr/servers/defaultServer/mylib/osgi などです。
  2. ファイル osgi-lib.jar および commons-lang.jar を新規フォルダーにコピーします。
  3. 共有ライブラリーがロードされるように、アプリケーションにそのライブラリーを構成します。 server.xml ファイルまたは組み込みファイルで、以下のコードを追加して、ライブラリーを定義します。
    <library id="mylib">
        <fileset dir="${server.config.dir}/mylib/osgi" includes="*.jar" scanInterval="5s">
    </library>
    注: library エレメントは、fileset エレメント ID のコンマ区切りのリストが含まれた filesetRef 属性を取ることもできます。
  4. OSGi アプリケーションがライブラリーで提供されるパッケージにアクセスし、 ライブラリーの単一コピーを共有できるようにするために、このライブラリーを OSGi ライブラリーとして参照します。 server.xml ファイルまたは組み込みファイルで、以下のコードを追加します。
    <osgiLibrary libraryRef="myLib"/>
  5. オプション: パッケージのリストを構成し、OSGi アプリケーションからそれらにアクセスできるようにします。 osgiLibrary エレメントを使用して共有ライブラリーが構成されると、 そのライブラリーに含まれるパッケージが OSGi アプリケーションからアクセス可能になります。 また、パッケージをリストして、OSGi アプリケーションからアクセス可能なパッケージをさらに制御することも可能です。 パッケージの構文では、OSGi Export-Package ヘッダー構文を使用して各パッケージを定義します。 server.xml ファイルまたは組み込みファイルでパッケージをリストするには、以下のコードを追加します。
    <osgiLibrary libraryRef="myLib">  
        <package>org.example.osgi.lib.pkg1; version=1.0</package>  
        <package>org.example.osgi.lib.pkg2; version=1.1</package>
    </osgiLibrary>
    注: package エレメントが使用されないと、ライブラリーが提供するパッケージを見つけるために、ライブラリーがスキャンされます。 発見された各パッケージは、デフォルト・バージョン 0.0.0 を取得します。

トピックのタイプを示すアイコン タスク・トピック



タイム・スタンプ・アイコン 最終更新: Monday, 5 December 2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-libcore-mp&topic=twlp_admin_osgiappl
ファイル名: twlp_admin_osgiappl.html