Equinox, die Eclipse Platform

Aus Eclipse
Wechseln zu: Navigation, Suche

Equinox ist eine OSGi Implementierung. Alle oben beschriebenen Begrifflichkeiten gelten daher uneingeschränkt auch für Equinox. Equinox wiederum ist die Plattform, auf der Eclipse basiert. Dabei wird im Eclipse Jargon immer wieder von Plugins gesprochen. Hiermit ist nichts anderes gemeint, als die Bundles (oder Module) des OSGi Frameworks. Also Plugin = Bundle!
Wird eine Eclipse Anwendung gestartet, ist alles was visuell sichtbar wird, eine Kombination von mehreren Plugins. Das Anwendungsfenster ist ein Plugin, das Menue, das Editorfenster, ... . All diese Plugins wurden nach dem Start der Equinox Plattform von dieser geladen und gestartet. Natürlich gibt es auch Plugins, die keine visuelle Schnittstelle haben, die aber möglicherweise ebenfalls gestartet wurden.

Administrieren der Equinox Plattform über die Kommandozeile

Equinox an sich ist zunächst einmal unsichtbar. Natürlich wird Equinox auch gestartet, wenn die Eclipse Entwicklungsumgebung gestartet wird. Es gibt aber auch eine Möglichkeit nur Equinox zu starten. Hierzu kann man die Kommandozeile nutzen.
Voraussetzung: Auf Ihrem System ist ein Eclipse installiert.
Eqionox selbst ist nichts anderes als ein Jar im Verzeichnis plugins im Eclipse Wurzelverzeichnis. Der Name des Jars ist versionsabhängig und hat folgende Signatur: org.eclipse.osgi._?.?.?.R??x_????????.
Unten stehende Eingabe startet die Equinox-Umgebung und fragt dann alle installierten Bundles (Plugins) ab. Hierzu wird zunächst das Equinox-Jar ausgeführt. Ist Equinox erfolgreich gestartet worden, wird dies mit dem osgi> Eingabepromt angezeigt.
Folgendes Beispiel startet eine Equinox Instanz in der Kommandozeilenumgebung:

C:\Program Files\eclipse\plugins>java -jar org.eclipse.osgi_3.5.2.R35x_v20100126.jar -console -clean
osgi>

Das Kommando bundles gibt alle installierten Bundles auf der Konsole aus.

osgi> bundles
org.eclipse.osgi_3.5.2.R35x_v20100126 [0]
 Id=0, Status=ACTIVE
  Registered Services
    {org.eclipse.osgi.framework.console.CommandProvider}={service.ranking=2147483647, service.id=1}
    {org.osgi.service.packageadmin.PackageAdmin}={service.ranking=2147483647, service.pid=0.org.eclipse.osgi.framework.internal.core.PackageAdminImpl, service.vendor=Eclipse.org - Equinox, service.id=2}
...
osgi>