Java Reference
In-Depth Information
Zu Beginn sind alle Komponenten installiert. Die Client-Komponente ist schon gestartet, die
Service-Komponente mit der Bundle-Kennung 328 noch nicht. Wie man sieht, fängt die
Client-Komponente mit der Nutzung an, sobald der Service verfügbar wird. Der Quellcode
der Klasse CounterImpl (s. Listing 9.3) wird dann geändert, indem die Konstante INCRE-
MENT von 1 auf 2 erhöht wird. Anschließend wird das Kommando „update 328“ eingege-
ben, was eine Neuinstallation der Service-Komponente zur Folge hat. Wie zu sehen ist,
verwendet dann der Client nicht nur das neue Objekt, sondern auch die neue Version der
Klasse CounterImpl, ohne dass die Client-Komponente dazu angehalten oder gar neu instal-
liert werden muss. Dies ist ein Vorteil des Komponenten-Frameworks OSGi.
9 6 Lebenszyklus von Komponenten
Bei der Nutzung der OSGi-Implementierung Felix haben Sie bei der Ausgabe des Komman-
dos lb gesehen, dass ein Bundle im Lauf der Zeit unterschiedliche Zustände annehmen
kann. Welche Zustände und welche Zustandsübergänge es gibt, zeigt Bild 9.1.
Start
INSTALLED
STARTING
RESOLVED
ACTIVE
Bild 9.1 Lebenszyklus von
OSGi-Komponenten
UNINSTALLED
STOPPING
Die Zustände haben folgende Bedeutung:
! INSTALLED: Dieser Zustand wird eingenommen, nachdem ein Bundle installiert wurde.
! RESOLVED: Dieser Zustand zeigt an, dass alle Packages, die ein Bundle benötigt (d. h.
importiert), verfügbar sind. Das Bundle kann gestartet werden. Wenn man in Felix das
Start-Kommando eingibt, wird für den Fall, dass das Bundle noch im Zustand INSTALLED
ist, zuerst der Zustand RESOLVED eingenommen. Wenn eine Komponente angehalten
wird (in Felix durch Eingabe des Kommandos stop), dann kehrt die Komponente in den
RESOLVED-Zustand zurück.
! STARTING und STOPPING: Dies sind Zwischenzustände, die in der Regel nur eine kurze
Zeit eingenommen werden, und zwar während der Ausführung der Start- bzw. Stop-
Methode.
! ACTIVE: Dieser Zustand bedeutet, dass ein Bundle aktiv ist.
! UNINSTALLED: Dieser Zustand ist in der Ausgabe des Kommandos lb nie zu sehen, da
deinstallierte Komponenten gar nicht mehr in der Liste au auchen.
Der Zustand RESOLVED weist nochmals explizit darauf hin, dass der Abgleich der Imports
mit den Exports anderer Komponenten erfolgreich verlaufen ist. In OSGi kann eine Kompo-
nente in ihrem Programmcode nur die Packages verwenden, die sie explizit importiert. Und
 
Search WWH ::




Custom Search