Einem Service eine PID zuordnen
Sie können eine Gruppe von Konfigurationseigenschaften mit der persistenten ID ihrer konsumierenden Komponente zuordnen, wie in der Spezifikation "OSGi Configuration Admin" beschrieben.
Informationen zu diesem Vorgang
- Implementierung von org.osgi.service.cm.ManagedService or org.osgi.service.cm.ManagedServiceFactory direkt beim OSGi-Configuration-Admin-Service registrieren
- Diese Methode wird am häufigsten in Low-Level-Kernel-Bundles verwendet, bei denen Service-Management mit OSGi Declarative Services (DS) oder Blueprint zur Startzeit des Bundles nicht verfügbar ist. Die Registrierung legt die PID fest, die die zu empfangende Konfigurationsgruppe angibt.
- Einen Service für DS definieren
- Dies ist die häufigste Methode, wie Services in Feature-Bundles ihre Konfiguration erhalten. Der Servicename wird als PID für die Zuordnung der Konfigurationsdaten verwendet. DS erhält die Konfigurationsgruppe vom CA und gibt sie an den definierten Service weiter.
Beispiel
Ein Service kann unter Verwendung des folgenden Eintrags in
der Projektdatei *.bnd deklariert werden:
Service-Component: com.ibm.ws.transaction; \
provide:='com.ibm.tx.config.ConfigurationProvider'; \
immediate:='true'; \
modified:='modified'; \
implementation:=com.ibm.ws.transaction.services.JTMConfigurationProvider
Dies generiert den folgenden XML-Code, der auch vom Entwickler anstatt über den bnd-Eintrag Service-Component codiert werden kann:
<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>
Der Komponentenname (com.ibm.ws.transaction in
diesem Beispiel) wird als PID für die Zuordnung von Konfigurationsdaten
verwendet. Enthält diese Komponente keine Metadaten für die Beschreibung ihrer Konfiguration,
können Sie Konfigurationseigenschaften für die Komponente unter Verwendung dieser PID
in der Datei server.xml oder einer eingeschlossenen Datei angeben,
indem Sie einen Eintrag mit dem folgenden Format definieren:
<com.ibm.ws.transaction made.up.property.key="47">