Association d'un service à une identité persistante
Vous associez un jeu de propriétés de configuration à son composant consommateur en procédant comme décrit dans la spécification du service d'administration de configuration OSGi à l'aide de l'identité persistante (PID).
Pourquoi et quand exécuter cette tâche
- Enregistrer une implémentation de org.osgi.service.cm.ManagedService ou de org.osgi.service.cm.ManagedServiceFactory directement auprès du service d'administration de configuration OSGi
- Cette technique est la plus utilisée dans les bundles du noyau de bas niveau, car à leur démarrage, la gestion des services via les services déclaratifs (DS) OSGi ou Blueprint n'est pas disponible. L'enregistrement spécifie le PID qui identifie le jeu de configuration à recevoir.
- Définir un service auprès de DS (services déclaratifs)
- C'est le moyen le plus couramment employé pour permettre aux services dans les bundles de fonctions de recevoir leur configuration. Le nom du service est utilisé comme PID pour associer les données de configuration. DS reçoit le jeu de configuration du service CA et le passe au service défini.
Exemple
Un service peut être déclaré avec l'entrée suivante dans le fichier *.bnd du projet :
Service-Component: com.ibm.ws.transaction; \
provide:='com.ibm.tx.config.ConfigurationProvider'; \
immediate:='true'; \
modified:='modified'; \
implementation:=com.ibm.ws.transaction.services.JTMConfigurationProvider
Le code suivant est généré. Il peut également être rédigé par le développeur au lieu d'utiliser entrée 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>
Le nom de composant, com.ibm.ws.transaction dans cet exemple, est utilisé comme identité persistante pour l'association des données de configuration. Si ce composant ne fournit pas de métadonnées pour décrire sa configuration, vous pouvez spécifier des propriétés de configuration pour le composant en utilisant l'identité persistante qui figure dans le fichier server.xml, ou un fichier inclus, en définissant une entrée de la forme suivante :
<com.ibm.ws.transaction made.up.property.key="47">