Service für den Empfang von Konfigurationseigenschaften codieren

Konfigurationseigenschaften sind über das in der Aktivierungsmethode bereitgestellte Objekt org.osgi.service.component.ComponentContext verfügbar.

Vorbereitende Schritte

Sie müssen die im Artikel Einem Service eine PID zuordnen beschriebene Task ausführen.

Informationen zu diesem Vorgang

Falls Eigenschaften aktualisiert werden, nachdem die Aktivierung stattgefunden hat, ist die für die Injektion verwendete Methode abhängig davon, welchen Kontext der Service in der OSGi-DS-Deklaration (OSGi Declarative Services) bereitstellt.

Im Allgemeinen ist es am besten, eine Methode zu bestimmen, die eigens für die Injektion aktualisierter Eigenschaften durch Verwendung des Attributs modified in der Servicedeklaration verwendet werden soll. Wenn keine modified-Methode verfügbar ist, inaktiviert DS den Service und reaktiviert ihn mit den neuen Eigenschaften.

Das Stoppen und erneute Starten eines Service kann dazu führen, dass abhängige Services ebenfalls gestoppt und erneut gestartet werden, und muss (sofern nicht unbedingt erforderlich) vermieden werden. Die Verwendung des Attributs modified ist die bevorzugte Methode für den Empfang von Konfigurationsaktualisierungen.

Beispiel

In der vorherigen Task (Einem Service eine PID zuordnen) haben Sie einen Service für DS definiert. Nachfolgend finden Sie Beispiele der Methoden "activate" und "modified" aus der dort beschriebenen DS-Deklaration.
private static Dictionary<String, Object> _props = null;

    protected void activate(ComponentContext cc) {
        _props = cc.getProperties();
    }

    protected void modified(Map<?, ?> newProperties) {
        if (newProperties instanceof Dictionary) {
            _props = (Dictionary<String, Object>) newProperties;
        } else {
            _props = new Hashtable(newProperties);
        }
    }
Wenn Sie Werte aus den Konfigurationseigenschaften abrufen, verwenden Sie die folgenden Mechanismen, um Flexibilität zu ermöglichen:
  • Codieren Sie die Methoden so, dass mindestens die in demselben Bundle enthaltenen Standardeigenschaften angenommen werden und gleichzeitig Überschreibungen durch den Benutzer berücksichtigt werden, damit keine Migration der Benutzerkonfiguration erforderlich ist.
  • Ignorieren Sie redundante oder nicht erkannte Eigenschaften.
Der Service muss in der Lage sein, ausschließlich mit der Standardkonfiguration zu arbeiten. Für eine angemessene Funktionsweise dürfen Benutzerüberschreibungen nicht obligatorisch sein.

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_setup_service_getprops
Dateiname: twlp_setup_service_getprops.html