OSGi-Services verwenden

Die Registrierung und Aufhebung der Registrierung von Services kann jederzeit erfolgen. Deshalb sollten Sie einen Service nur für eine möglichst kurze Zeit halten. Sie können die ServiceTracker-Klasse verwenden, um die Serviceverfügbarkeit ohne Unterbrechung des Systembetriebs zu überwachen.

Informationen zu diesem Vorgang

Um Services zu verfolgen, erstellen Sie ein ServiceTracker-Objekt mit Ihrem Bundle-Kontext, der geforderten Schnittstelle und den geforderten Eigenschaften. Öfnen Sie anschließend den Tracker. Sie könnden den Tracker nach der passendsten Übereinstimmung oder allen Übereinstimmungen abfragen. Vergewissern Sie sich, dass Sie den Service nach der Verwendung nicht weiter halten. Sie müssen dem Tracker nicht mitteilen, dass Sie fertig sind. Der Tracker speichert die übereinsteimmenden Services intern zwischen und löscht sie, wenn ihre Registrierung aufgehoben wird. Schließen Sie den Tracker mit der Methode serviceTracker.close(), sobald Sie fertig sind.

Beispiel

Das folgende Beispiel zeigt, wie Sie ein ServiceTracker-Objekt zur Überwachung eines Service verwenden:

package com.ibm.foo.tracker;

import com.ibm.foo.simple.Foo;
import org.osgi.framework.BundleContext;
import org.osgi.util.tracker.ServiceTracker;

/**
 * Einfache Verwendung eines Service-Trackers, um einen Service abzurufen
 */
public class TrackingFooUser
{

    private ServiceTracker<Foo,Foo> serviceTracker;

    public TrackingFooUser( BundleContext bundleContext )
    {
        serviceTracker = new ServiceTracker<Foo, Foo>( bundleContext, Foo.class, null );
        serviceTracker.open();
    }

    public void doFoo() {
        Foo foo = serviceTracker.getService();
        //Verwendung von "Foo"
        //"Foo" muss nicht zurückgegeben werden. Verwenden Sie es nicht zu lange.
    }

    public void shutdown() {
        serviceTracker.close();
    }
}

Symbol das den Typ des Artikels anzeigt. Taskartikel

Nutzungsbedingungen für Information Center | Feedback


Symbol für Zeitmarke Letzte Aktualisierung: 25.08.2015
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=phil&product=was-libcore-mp&topic=twlp_feat_service_tracker
Dateiname: twlp_feat_service_tracker.html