將服務關聯於持續身分
您依照「OSGi 配置管理」規格所說明,利用持續身分 (PID),將一組配置內容關聯於它的消費端元件。
關於這項作業
- 將 org.osgi.service.cm.ManagedService 或 org.osgi.service.cm.ManagedServiceFactory 實作直接登錄在「OSGi 配置管理服務 (CA)」中
- 這最常用在低階核心軟體組之中,這裡在軟體組啟動之時,無法透過「OSGi 宣告式服務 (DS)」或藍圖來進行服務管理。 這項登錄會指定 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。
如果這個元件未提供任何說明其配置的 meta 資料,您可以在 server.xml 檔或某個併入檔中使用這個 PID,或以下列形式定義一個項目,來指定元件的配置內容:
<com.ibm.ws.transaction made.up.property.key="47">