Konfigurationsdaten mit der ManagedService-Schnittstelle empfangen

Die Liberty-Konfiguration wird vom OSGi-Configuration-Admin-Service verwaltet und kann entsprechend dieser Spezifikation aufgerufen werden. Gruppen von Konfigurationseigenschaften werden mit einer PID (persistent gespeicherte ID) angegeben, die für die Zuordnung des Elements in der Datei server.xml verwendet wird, in der die PID als der Elementname verwendet wird, zu der Komponente, die für den Empfang der Eigenschaften registriert wird.

Informationen zu diesem Vorgang

Für ein OSGi-Bundle, dessen Lebenszyklus durch die Verwendung der BundleActivator-Schnittstelle verwaltet wird, ist die Implementierung der Schnittstelle org.osgi.service.cm.ManagedService, die die PID als eine ihrer Eigenschaften angibt, eine unkomplizierte Möglichkeit, die Konfigurationseigenschaften zu erhalten.

Beispiel

Hinweis:
  1. In Eclipse müssen Sie eine SPI-Ziellaufzeit unter Window > Preferences > Plug-In Development > Target Platform auswählen.

  2. Fügen Sie Ihrer Datei MANIFEST.MF die folgende Anweisung hinzu:
    Import-Package: org.osgi.service.cm;version="1.5.0"
  3. Drücken Sie die Tastenkombination Strg + Umschalttaste + O, um Ihren Bundleaktivator zu aktualisieren.

In diesem Beispiel implementiert die Aktivatorklasse die ManagedService-Schnittstelle zusätzlich zur BundleActivator-Schnittstelle und empfängt ihre Eigenschaften mit der Methode updated. Sie können Standardeigenschaftswerte angeben, um die Angaben in der Benutzerkonfiguration zu vereinfachen.

public class Activator implements BundleActivator, ManagedService {

  public void start(BundleContext context) throws Exception {
    System.out.println("Sample bundle starting");
    // Für den Empfang der Konfiguration registrieren
    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");
    }
  }

}
Die Benutzerkonfiguration für das Bundle kann in der Datei server.xml oder einer enthaltenen Datei mit dem folgenden Eintrag definiert werden:
<simpleBundle color="red" flavor="raspberry" />
Anmerkung: Der Elementname in der Benutzerkonfiguration, simpleBundle, stimmt mit dem Wert der Eigenschaft org.osgi.framework.Constants.SERVICE_PID, die in der Registrierung ManagedService verwendet wird, überein.

Informationen zur Verwendung einer erweiterteren Konfiguration finden Sie unter Konfiguration mit OSGi-Metatypservice beschreiben.


Symbol das den Typ des Artikels anzeigt. Taskartikel



Symbol für Zeitmarke Letzte Aktualisierung: 01.12.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=twlp_receive_config_data_managedservice
Dateiname: twlp_receive_config_data_managedservice.html