サービスとパーシスト ID との関連付け
パーシスト ID を使用して、 OSGi Configuration Admin 仕様に規定されているように、構成プロパティーの セットをその消費コンポーネントと関連付けます。
このタスクについて
- org.osgi.service.cm.ManagedService または org.osgi.service.cm.ManagedServiceFactory の実装を 直接 OSGi Configuration Admin サービス (CA) に登録する
- これは、低水準カーネル・バンドルで最も一般的に使用されます。低水準カーネル・バンドルでは、バンドルの開始時に OSGi Declarative Services (DS) または Blueprint によるサービス管理が利用可能ではありません。 登録では、受け取る構成セットを識別する PID を指定します。
- DS に対してサービスを定義する
- フィーチャー・バンドルのサービスがその構成を受け取るために、これが最も一般的な方法です。 サービス名が、構成データを関連付けるための PID として使用されます。 DS は CA から構成セットを受け取り、定義されたサービスに渡します。
例
例えば、サービスは、プロジェクト *.bnd ファイルの次のようなエントリーを使用して宣言されます。
Service-Component: com.ibm.ws.transaction; ¥
provide:='com.ibm.tx.config.ConfigurationProvider'; ¥
immediate:='true'; ¥
modified:='modified'; ¥
implementation:=com.ibm.ws.transaction.services.JTMConfigurationProvider
これによって、
次の XML コードが生成されます。bnd Service-Component
エントリーを使用する代わりに、開発者がこれをコーディングすることも可能です。
<component name="com.ibm.ws.transaction" xmlns="http://www.osgi.org/xmlns/scr/v1.1.0"
immediate="true" modified="modified">
<implementation class="com.ibm.ws.transaction.services.JTMConfigurationProvider" />
<service>
<provide interface="com.ibm.tx.config.ConfigurationProvider" />
</service>
<property name="service.vendor" value="IBM" />
</component>
この例にあるコンポーネント名の com.ibm.ws.transaction は、構成データの関連付けの PID として使用されます。
このコンポーネントによって構成を記述するメタデータが提供されていない場合は、
server.xml ファイルまたは組み込みファイルにあるその PID を使用するか、次の形式のエントリーを定義することによって、
コンポーネントの構成プロパティーを指定できます。
<com.ibm.ws.transaction made.up.property.key="47">