996.3 OSGi Services registrieren und deregistrieren
■ Schritt 1 – Services registrieren: Damit ein OSGi Service im System
verfügbar wird, muss er innerhalb eines Bundles erzeugt und an der
Service Registry registriert werden.
■ Schritt 2 – Services abfragen: Die an der Service Registry angemel-
deten Services können anschließend unter den bei der Registrie-
rung angegebenen Klassennamen abgefragt werden.
■ Schritt 3 – Services verwenden: Wenn ein Bundle einen Service von
der Service Registry erhalten hat, dann hat das Bundle einen direk-
ten Zugriff auf das als Service angemeldete Objekt und kann des-
sen Funktionalität in Anspruch nehmen.
■ Schritt 4 – Services freigeben: Wird ein Service von einem nutzen-
den Bundle nicht mehr benötigt, dann muss dieses durch das
Bundle explizit freigegeben werden. Das OSGi Framework kann so
explizit verwalten, welche Services von welchen Bundles genutzt
werden.
■ Schritt 5 – Services deregistrieren: Wenn ein Service nicht mehr im
System zur Verfügung stehen soll, dann muss er durch das Bundle,
das den Service angemeldet hat, explizit deregistriert werden. Wird
das anmeldende Bundle gestoppt, dann werden alle angemeldeten
Services automatisch deregistriert. Nach der Deregistrierung eines
Service steht diese nicht mehr an der Service Registry zur Verfü-
gung.
6.3 OSGi Services registrieren und deregistrieren
6.3.1 Registrieren von OSGi Services
Das Registrieren eines Objektes als OSGi Service erfolgt über eine der
beiden
registerService()-Methoden des BundleContext:
package org.osgi.framework;
[...]
public interface BundleContext {
[...]
public ServiceRegistration registerService(String clazz,
Object service, Dictionary properties);
public ServiceRegistration registerService(String[] clazzes,
Object service, Dictionary properties);
[...]
}
Listing 6–3
Serviceregistrierung über
den Bundle Context