Réception des données de configuration avec l'interface ManagedService

La configuration du profil Liberty est gérée par le service d'administration de configuration OSGi et est accessible conformément à la spécification du service d'administration de configuration OSGi. Des ensembles de propriétés de configuration sont identifiés par une identité persistante (PID) qui est utilisée pour associer un élément dans le fichier server.xml, où l'identité persistante (PID) est utilisée comme nom d'élément, au composant enregistré pour la réception des propriétés.

Pourquoi et quand exécuter cette tâche

Pour un bundle OSGi dont le cycle de vie est géré avec l'interface BundleActivator, une façon simple et directe de recevoir les propriétés de configuration consiste à implémenter l'interface org.osgi.service.cm.ManagedService, qui spécifie l'identité persistante comme l'une de ses propriétés.

Exemple

A faire :
  1. Dans Eclipse, vous devez sélectionner une exécution cible SPI dans Window > Preferences > Plug-In Development > Target Platform.

  2. Ajoutez l'instruction suivante dans votre fichier MANIFEST.MF :
    Import-Package: org.osgi.service.cm;version="1.5.0"
  3. Appuyez sur Ctrl + Maj + O pour mettre à jour votre activateur de regroupement.

Dans cet exemple, la classe Activator implémente l'interface ManagedService en plus de l'interface BundleActivator, et reçoit des propriétés de configuration avec la méthode updated. Vous pouvez indiquer des valeurs de propriété par défaut pour simplifier les éléments à spécifier dans la configuration utilisateur.

public class Activator implements BundleActivator, ManagedService {

  public void start(BundleContext context) throws Exception {
    System.out.println("Sample bundle starting");
    // register to receive configuration
    ServiceRegistration<ManagedService> configRef = context.registerService(
      ManagedService.class,
      this,
      getDefaults()
      );
  }

  public void stop(BundleContext context) throws Exception {
    System.out.println("Sample bundle stopping");
    configRef.unregister();
  }

  Hashtable getDefaults() {
    Hashtable defaults = new Hashtable();
    defaults.put(org.osgi.framework.Constants.SERVICE_PID, "simpleBundle");
    return defaults;
  }

  public void updated(Dictionary<String, ?> properties) throws ConfigurationException {
    if (properties != null)
    {
      String configColor = (String) properties.get("color");
      String configFlavor = (String) properties.get("flavor");
    }
  }

}
La configuration utilisateur pour le bundle peut être fournie en option dans le fichier server.xml ou dans un fichier inclus, par l'entrée suivante :
<simpleBundle color="red" flavor="raspberry" />
Remarque : Le nom d'élément dans la configuration utilisateur, simpleBundle, correspond à la valeur de la propriété org.osgi.framework.Constants.SERVICE_PID utilisée dans l'enregistrement ManagedService.

Pour un exemple d'utilisation de la configuration plus avancé, voir Description de la configuration à l'aide du service des métatypes OSGi.


Icône indiquant le type de rubrique Rubrique Tâche

Dispositions pour les centres de documentation | Commentaires


Icône d'horodatage Dernière mise à jour: Wednesday, 2 September 2015
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-libcore-mp&topic=twlp_receive_config_data_managedservice
Nom du fichier : twlp_receive_config_data_managedservice.html