OSGi

Equinox unter Mac OSX

Posted by admin on Mo, 05/12/2008 - 19:24

Von mehreren Lesern wurde uns verschiedene Probleme bei der Ausführung der Tutorials unter Mac OSX berichtet. Diese Probleme sowie mögliche Lösungen sind auf dieser Seite beschrieben.

OSGi-Launch-Konfiguration: Equinox terminiert trotz aktivierter Konsole

Problem
Ekkehard Gentz hat uns berichtet, dass das Ausführen von Equinox 3.2.2 mit aktivierter Konsole unter Mac OSX nicht wie beschrieben funktioniert, wenn Equinox über eine OSGi-Launch-Konfiguration aus der Eclipse IDE heraus gestartet wird. In diesem Fall terminiert Equinox kurz nach dem Starten der Konsole. Das Verhalten tritt (mindestens) unter Equinox 3.3.2, OSX 10.5.2 und Java 1.5 auf. Unter Java 1.4.2 scheint das beschriebene Problem nicht aufzutreten.

Lösung
Das beschriebene Problem scheint mit Equinox 3.4.M7 nicht mehr aufzutreten. Wenn Sie die Tutorials - wie im Buch beschrieben - aus der Eclipse IDE heraus starten möchten, dann können Sie anstelle von Equinox 3.2.2 die Version 3.4.M7 verwenden. Bitte beachten Sie in diesem Fall die Hinweise zur Ausführung der Tutorials unter Equinox 3.4.

Eclipse Equinox 3.3.2 terminiert ebenfalls nicht, wenn das OSGi Framework ausserhalb der Eclipse IDE gestartet wird. Sie können also alternativ die beschriebenen Tutorials ausserhalb der Eclipse IDE (und damit ohne Verwendung einer OSGi-Framework-Launch-Konfiguration) ausführen (vgl. dazu Kapitel 11 - Packaging und Deployment).

OSGi-Launch-Konfiguration: Inaktive Swing-GUIs

Problem
Das Ausführen einer Swing-Anwendung ist unter Mac OSX ebenfalls nicht möglich, wenn die Anwendung über eine OSGi-Launch-Konfiguration gestartet wird. In diesem Fall wird das Swing-GUI zwar angezeigt, es können jedoch keine Aktionen auf dem GUI ausgeführt werden. Dieser Fall tritt bspw. auf, wenn Sie - wie in Kapitel 10.5 oder 14.1 beschrieben - den Knopflerfish-Desktop in einer Equinox-Instanz installieren, die über eine OSGi-Launch-Konfiguration aus der Eclipse IDE heraus gestartet wurde.

Hintergrund
Alex Blewitt beschreibt das Problem inkl. einiger Hintergründe in diesem Blog-Eintrag (http://www.eclipsezone.com/eclipse/forums/t93285.html). Weiter Hintergrundinfos zu diesem Thema sind unter http://wiki.eclipse.org/Equinox_Launcher_Issues zu finden.

Lösung
Das beschriebene Probem lässt sich leider nicht lösen. Um Swing-GUIs unter Mac OSX in Equinox auszuführen, muss die Equinox-Instanz von der Kommandozeile gestartet werden. Alternativ kann Equinox aus der Eclipse IDE heraus über eine Java-Launch-Konfiguration durch den Aufruf von org.eclipse.core.runtime.adaptor.EclipseStarter starten (vgl. dazu Unterkapitel 11.5 - Ausführen von Eclipse Equinox).