O'Reilly logo

Die OSGi Service Platform: Eine Einführung mit Eclipse Equinox by Matthias Lübken, Bernd Kolb, Nils Hartmann, Gerd Wütherich

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

55
4 Bundle-Lebenszyklus
Motivation
Im letzten Kapitel haben Sie gelernt, wie Sie in der Eclipse IDE ein ein-
faches OSGi-Bundle in Form eines Plug-in-Projektes anlegen und
zusammen mit dem Start des Frameworks ausführen. In diesem Kapi-
tel stellen wir Ihnen vor, wie Sie Bundles zur Laufzeit mithilfe eines
Management Agents in der Service Platform installieren und starten,
stoppen und wieder deinstallieren können.
Für die Administration des OSGi Frameworks verwenden wir die
Equinox-Konsole. Die Equinox-Konsole ist ein einfacher Management
Agent, der die Steuerung des OSGi Frameworks über die Kommando-
zeile ermöglicht und standardmäßig in jeder Eclipse-Equinox-Distri-
bution vorhanden ist.
Darüber hinaus lernen Sie in diesem Kapitel, wie Sie unter der Ver-
wendung von Bundle und Framework Listenern auf Änderungen im
Zustand von Bundles bzw. des Frameworks reagieren. Abschließend
zeigen wir Ihnen, wie Sie Zustandsänderungen an Bundles program-
matisch vornehmen, wenn Sie bspw. einen eigenen Management Agent
implementieren möchten.
Einordnung
Die in diesem Kapitel vorgestellten Konzepte sind logisch im Life-
cycle-Management-Layer des OSGi Frameworks angesiedelt (vgl.
Abb. 4–1).
Abb. 4–1
Einordnung in die
logischen Framework-
Schichten
OSGi Framework
Specification
Module-Schicht
Lifecycle-Management-Schicht
Service-Schicht
Secu-
rity
Framework
Services
4 Bundle-Lebenszyklus56
Sie können die Spezifikation der in diesem Kapitel vorgestellten Kon-
zepte in Kapitel 4 (Lifecycle Layer) der OSGi Core Specification nach-
lesen.
4.1 Tutorial: Den Bundle-Lebenszyklus über die
Equinox-Konsole steuern
Überblick
Um die Installation und Deinstallation von Bundles an einem prak-
tischen Beispiel zu demonstrieren, werden wir das im letzten Unter-
kapitel erstellte »Hello World«-Bundle zur Laufzeit in der OSGi Ser-
vice Platform installieren, starten und wieder stoppen.
Das »Hello World«-Bundle selbst muss dazu nicht geändert wer-
den. Lediglich die Launch-Konfiguration, die das »Hello World«-
Bundle zusammen mit dem OSGi Framework startet, wird von uns in
diesem Unterkapitel so angepasst, dass das »Hello World«-Bundle
nicht unmittelbar mit dem Framework mitgestartet wird. Stattdessen
werden wir das Bundle nach dem Start des Frameworks mithilfe der
Equinox-Konsole installieren, starten und wieder stoppen.
Schritt 1: Eine Launch-Konfiguration zum Start der Konsole anlegen
Legen Sie zunächst eine neue Launch-Konfiguration mit dem Namen
»Equinox Console« an. Die neue Konfiguration soll nur das Frame-
work starten und keine weiteren Bundles installieren wir möchten
unser »Hello World«-Bundle schließlich über die Equinox-Konsole
installieren und starten. Bitte deselektieren Sie deshalb auf der Seite
Plug-ins alle Bundles bis auf das Bundle
org.eclipse.osgi, das das
OSGi Framework selbst implementiert.
Die Default-
Argumente
Zusätzlich werden wir in diesem Unterkapitel einige Startparame-
ter auf der Seite Arguments der Launch-Konfiguration eintragen, um
so das Laufzeitverhalten des OSGi Frameworks zu beeinflussen (vgl.
Abb. 4–2). Seit der Version 3.3 der Eclipse IDE sind beim Erzeugen
einer neuen OSGi-Framework-Launch-Konfiguration verschiedene
Werte als Startparameter in der Konfiguration voreingestellt:
Programmargumente. Die folgenden Werte sind standardmäßig als
Programmargumente eingetragen:
-os ${target.os} -ws ${target.ws} -arch ${target.arch}
-nl ${target.nl} -console
Die Default-Programmargumente -os ${target.os}, -ws ${tar-
get.ws}
, -arch ${target.arch} und -nl ${target.nl} werden verwen-
det, um dem OSGi Framework Informationen über das zugrunde
liegende Betriebs- und Fenstersystem sowie die Hardwarearchitek-
574.1 Tutorial: Den Bundle-Lebenszyklus über die Equinox-Konsole steuern
tur und das Locale zu übergeben. Diese Werte sind für das hier vor-
gestellte Beispiel nicht relevant und können wahlweise ignoriert
oder gelöscht werden.
Über den Default-Startparameter
-console bewirken Sie, dass beim
Start des OSGi Frameworks die Equinox-Konsole mitgestartet
wird, so dass Sie das Framework über die Konsole interaktiv ver-
walten und manipulieren können.
VM-Argumente. Zusätzlich sind die folgenden Werte als Argu-
mente für die virtuelle Maschine eingetragen:
-Declipse.ignoreApp=true -Dosgi.noShutdown=true
Die beiden Default-VM-Argumente steuern das Verhalten des
Frameworks bzgl. des Application Admin Service und müssen
gesetzt sein.
Schritt 2: Zusätzliche Programmargumente spezifizieren
Das Programmargument
–clean
Zusätzlich zu den bestehenden Programmargumenten tragen Sie unter
Program arguments den Startparameter
-clean ein, der dafür sorgt,
dass beim Start des Equinox-Frameworks die Bundle Caches gelöscht
werden. Dadurch stellen Sie sicher, dass alle ggf. in einem vorherigen
Lauf installierten Bundles aus dem System entfernt werden und Sie
immer eine »saubere« Equinox-Installation starten
Das Programmargument
–dev bin
Damit Sie in Eclipse Equinox auch Plug-in-Projekte zur Laufzeit
korrekt installieren und ausführen können, müssen Sie weiter unter
Abb. 4–2
Launch-Konfiguration der
Equinox-Konsole

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required