< 前へ | 次へ >

レッスン 1.1: OSGi サンプル・バンドルの理解

このレッスンを実行して、OSGi サンプル内に用意されているバンドルを探して、調べます。

OSGi サンプル・バンドル

Eclipse Equinox 環境のセットアップについてのトピックで 記載している config.ini ファイル内に 構成されているバンドル以外にも、OSGi サンプルでは次のバンドルが追加で使用されます。
objectgrid.jar
WebSphere eXtreme Scale サーバー・ランタイム・バンドル。このバンドルは wxs_home/lib ディレクトリーにあります。
com.google.protobuf_2.4.0a.jar
Google Protocol Buffers バージョン 2.4.0a バンドル。このバンドルは wxs_sample_osgi_root/lib ディレクトリーにあります。
ProtoBufSamplePlugins-1.0.0.jar
サンプル ObjectGridEventListener および MapSerializerPlugin プラグイン実装を 備えたバージョン 1.0.0 のユーザー・プラグイン・バンドル。このバンドルは wxs_sample_osgi_root/lib ディレクトリーにあります。 サービスはサービス・ランキング 1 で構成されます。

このバージョンは、標準 Blueprint XML を使用して、eXtreme Scale プラグイン・サービスを構成します。サービス・クラスは WebSphere eXtreme Scale インターフェースである com.ibm.websphere.objectgrid.plugins.osgi.PluginServiceFactory のユーザー実装クラスです。 ユーザー実装クラスは、要求ごとに Bean を作成し、プロトタイプ・スコープの Bean と似た 動きをします。

ProtoBufSamplePlugins-2.0.0.jar
サンプル ObjectGridEventListener および MapSerializerPlugin プラグイン実装を 備えたバージョン 2.0.0 のユーザー・プラグイン・バンドル。このバンドルは wxs_sample_osgi_root/lib ディレクトリーにあります。 サービスはサービス・ランキング 2 で構成されます。

このバージョンは、標準 Blueprint XML を使用して、eXtreme Scale プラグイン・サービスを構成します。サービス・クラスは、WebSphere eXtreme Scale 組み込みクラスである com.ibm.websphere.objectgrid.plugins.osgi.PluginServiceFactoryImpl を使用し、この組み込みクラスは BlueprintContainer サービスを使用します。標準 Blueprint XML 構成を使用して、プロトタイプ・スコープ または singleton スコープの Bean を構成できます。Bean は断片スコープとしては構成されません。

ProtoBufSamplePlugins-Gemini-3.0.0.jar
サンプル ObjectGridEventListener および MapSerializerPlugin プラグイン実装を 備えたバージョン 3.0.0 のユーザー・プラグイン・バンドル。このバンドルは wxs_sample_osgi_root/lib ディレクトリーにあります。 サービスはサービス・ランキング 3 で構成されます。

このバージョンは、Eclipse Gemini 固有の Blueprint XML を使用して、eXtreme Scale プラグイン・サービスを構成します。サービス・クラスは、WebSphere eXtreme Scale 組み込みクラスである com.ibm.websphere.objectgrid.plugins.osgi.PluginServiceFactoryImpl を使用し、この組み込みクラスは BlueprintContainer サービスを使用します。断片スコープ Bean の構成には Gemini 固有の アプローチが使用されます。 このバージョンは、スコープ値に {http://www.ibm.com/schema/objectgrid}shard を指定し、 カスタム・スコープが Gemini に認識されるようダミー属性を構成することで、myShardListener Bean を 断片スコープの Bean として構成します。こうする理由は、Eclipse の問題 (https://bugs.eclipse.org/bugs/show_bug.cgi?id=348776) にあります。

ProtoBufSamplePlugins-Aries-4.0.0.jar
サンプル ObjectGridEventListener および MapSerializerPlugin プラグイン実装を 備えたバージョン 4.0.0 のユーザー・プラグイン・バンドル。このバンドルは wxs_sample_osgi_root/lib ディレクトリーにあります。 サービスはサービス・ランキング 4 で構成されます。

このバージョンは、標準 Blueprint XML を使用して、eXtreme Scale プラグイン・サービスを構成します。サービス・クラスは、WebSphere eXtreme Scale 組み込みクラスである com.ibm.websphere.objectgrid.plugins.osgi.PluginServiceFactoryImpl を使用し、この組み込みクラスは BlueprintContainer サービスを使用します。標準 Blueprint XML 構成を使用して、カスタム・スコープの Bean を 構成できます。このバージョンは、スコープ値に {http://www.ibm.com/schema/objectgrid}shard を 指定することで、myShardListenerbean を断片スコープの Bean として構成します。

ProtoBufSamplePlugins-Activator-5.0.0.jar
サンプル ObjectGridEventListener および MapSerializerPlugin プラグイン実装を 備えたバージョン 5.0.0 のユーザー・プラグイン・バンドル。このバンドルは wxs_sample_osgi_root/lib ディレクトリーにあります。 サービスはサービス・ランキング 5 で構成されます。

このバージョンは、Blueprint コンテナーを一切使用しません。このバージョンでは、サービスは OSGi サービス登録を使用して登録されます。サービス・クラスは WebSphere eXtreme Scale インターフェースである com.ibm.websphere.objectgrid.plugins.osgi.PluginServiceFactory のユーザー実装クラスです。 ユーザー実装クラスは、要求ごとに Bean を作成します。それはプロトタイプ・スコープの Bean と似た動きをします。

レッスンのチェックポイント

OSGi サンプルで提供されるバンドルを調べることで、OSGi コンテナー内で実行する 独自の実装を開発する方法がさらによくわかります。

以下について学習しました。
  • OSGi サンプルに組み込まれているバンドル
  • それらのバンドルの場所
  • 各バンドルに構成されているサービス・ランキング
< 前へ | 次へ >