Mit Eclipse RTP zum kompletten Runtime-Paket

Eclipse Indigo: Das Runtime Packaging Project

Das Eclipse Runtime Packaging (RTP) Projekt ist zum ersten Mal in einem Eclipse Release Train vertreten. Projektleiter Holger Staudacher gibt Auskunft darüber, welche Bereicherung RTP für Eclipse-User bedeutet.

JAXenter: Kannst du das Eclipse Runtime Packaging Projekt kurz vorstellen?

Holger Staudacher: Beim Eclipse Runtime Packaging Project – oder kurz Eclipse RTP – handelt es sich im wesentlichen um zwei Dinge. Im Vordergrund steht der Produkt-Gedanke. Damit ist Folgendes gemeint: Wenn das Wort Eclipse fällt, denken die meisten Entwickler automatisch an die IDE. Warum ist das so? Konzepte wie Eclipse RCP oder RAP gibt es doch schon seit Langem! Einer der Gründe ist wahrscheinlich die eclipse.org/downloads Seite. Entwickler besuchen diese Seite und finden dort verschiedene Pakete vor, die sie downloaden und starten können. Dabei sind diese Pakete verschiedene Variationen der IDE. Aus der URL der Downloads Seite lässt sich eines erschließen: „Die Pakete sind die Produkte von Eclipse“. Jeder, der Eclipse benutzt, kennt diese Pakete und jeder entwicklet mit einem dieser Pakete, sei es das „Classic Package“ oder das „Package for RCP/RAP Developers“.

Wenn es nun um das Thema Eclipse als Runtime geht, fehlt ein solches Produkt. Entwickler, die sich gerne mit EclipseRT auseinander setzen möchten, müssen mühevoll ihren Pfad durch das Eclipse-Ökosystem finden. Genau an diesem Punkt setzt Eclipse RTP an. Mit diesem Projekt möchten wir EclipseRT ein Gesicht verleihen. Wir erstellen Pakete, die ebenfalls von der eclipse.org/downloads Seite beziehbar sein sollen. Damit soll der Bekanntheitsgrad von EclipseRT gesteigert werden.

Ein netter Nebeneffekt des Projekts ist, dass damit Einstiegshürden beseitigt werden. Wie ich eben erwähnt habe, müssen Benutzer, die sich zum ersten mal mit EclipseRT beschäftigen, einen eigenen Pfad durch das Ökosystem finden. Mit Pfad ist an dieser Stelle ein Weg durch Websites, Dokumentationen und Wikis von mehr als 20 Projekten gemeint. Das ist nicht nur zeitaufwändig sondern meist auch frustrierend. Die einzelnen Projekte haben kein einheitliches Auftreten. Mal ist die Dokumentation im Wiki, mal auf der Webseite. Neue Benutzer werden durch diese unübersichtliche Vielfalt schnell abgeschreckt.

Mit Eclipse RTP können wir einen Einstiegspunkt anbieten. Das Projekt unterliegt dem Motto: „Download, Run, Explore“. Das bedeutet, dass Benutzer einzelne Pakete herunterladen können und diese auf eine einheitliche Weise ausführen. Nachdem dieses erste Erfolgserlebnis eingetreten ist, bieten wir einen „Guide“ durch diesen EclipseRT-Jungel in Form von Beispielen und Links an.

JAXenter: Wie ist der aktuelle Entwicklungsstand des Projektes?

Holger Staudacher:Das Projekt ist noch sehr jung. Wir benötigten sogar eine „Exception“, um am Release Train teilnehmen zu können, weil wir erst im Februar den Projekt-Status erlangten. Jedoch haben wir es in dieser kurzen Zeit geschafft, eine einheitliche Infrastruktur für die EclipseRT Packages zu erstellen und damit auch gleich zwei Pakete. Im Mittelpunkt steht das „Basic Package“. Dieses Paket bildet den Kern von allen noch kommenden Paketen. Der Inhalt des Paketes sind Komponenten von Equinox und p2. Der Clou an der Sache ist, dass mit jedem Package ein „Cross-Platform Launcher“ ausgeliefert wird. Das heißt, dass Benutzer ein Paket downloaden und anschließend das Framework mit einem ausführbaren Script starten können. Dabei ist jegliche Konfigurationsarbeit von vornherein erledigt. Darum kümmern wir uns. Benutzer müssen sich also nicht darum kümmern, ob alle benötigten p2 oder Equinox Bundles gestartet sind oder ob bestimmte Abhängigkeiten nicht erfüllt werden können.

Das zweite Paket beinhaltet noch zusätzlich Jetty inkl. diverser Jetty-Konfigurationen und heißt „Web Package“. Dieses Paket soll Benutzern den Einstieg in die Webentwicklung mit EclipseRT erleichtern. Dieses Paket kann und wird auch schon produktiv als Webserver eingesetzt. Hinter diesem Paket steht die Firma Intalio, welche das Jetty-Projekt leitet.

Neben den beiden Paketen bieten wir noch vorkonfigurierte Amazon EC2 Images an. Damit möchten wir zeigen, dass EclipseRT eine Platform ist, die für den Einsatz in der Cloud durchaus geeignet ist. Die Images sind für drei verschiedene Regionen (USA, Europa und Asien) verfügbar. Ein Image ist ein minimal angepasstes Ubuntu Linux mit den EclipseRT-Paketen vorinstalliert.

Natürlich ist auch die erste Version des oben erwähnten „Guides“ online und kann über eclipse.org/rtp/examples gefunden werden.

JAXenter: Was ist noch nicht möglich?

Holger Staudacher:Wir bieten die oben erwähnten Pakete auch als p2 Repository an. Somit kann man die Komponenten der Pakete zur Entwicklungszeit als Target Platform nutzen. Weil wir erst spät zu dem Indigo Release Train hinzu kamen, entschieden wir uns, unsere p2 Repositories nicht in das Indigo Repository hinzuzufügen. Das heißt also, dass die Pakete noch nicht über das Release Repository bezogen werden können.

Des Weiteren bieten wir für Indigo lediglich zwei Pakete an. Damit ist natürlich nur ein sehr kleiner Teil des EclipseRT-Universums abgedeckt. Weitere Pakete sind jedoch in Planung.

JAXenter: Welches sind aus deiner Sicht die Highlights im Runtime-Bereich des Indigo Release Trains?

Holger Staudacher:Ich glaube, mit der Antwort auf diese Frage könnte man ein komplettes Magazin füllen. Ich versuche mich mal auf meine persönlichen Highlights zu beschränken. Eines der Highlights sind für mich die neuen Features von Eclipse RAP.

Die Rich Ajax Platform hat Indigo genutzt, um zu reifen. Viele Dinge sind dabei „unter der Haube“ passiert. So wurde z.B. die Client-seitige JavaScript-Bibliothek entschlackt, das Eclipse UI API auf 3.7 geupdated und eine Java-basierte JavaScript-Kompression eingeführt in Form des Yahoo-YUI-Kompressors. Neben diesen Änderungen kamen auch neue Features wie z.B. die lang ersehnten Key-Bindings hinzu. Ist das nicht toll? Key-Bindings im Browser!

Ein weiteres Highlight ist für mich Eclipse Scout. Die schweizer Firma BSI fing vor fast 10 Jahren mit der Entwicklung eines eigenen Frameworks an, um ihre Kundenbedürfnisse besser erfüllen zu können. Dieses Framework, mittlerweile in Version 3, basiert komplett auf Eclipse-Technologien und ist nun als Scout-Projekt Open Source. Scout ist ebenfalls das erste Mal beim Eclipse Release Train dabei.

JAXenter: Was ist im Runtime Packaging Projekt für den kommenden Juno-Release-Zyklus geplant?

Holger Staudacher:Wir befinden uns noch in der Planung. Allerdings sind schon zwei Dinge gewiss. Wir werden eine Erweiterung der Equinox/p2 Konsole entwickeln, die an das Linux Tool „apt“ angelehnt ist. Damit soll es möglich sein, mit der Equinox-Konsole auf einfache Weise EclipseRT-Komponenten zu installieren. Wir dachten z.B. an so etwas: Ein Benutzer gibt in die Konsole „rt install rap“ ein, und damit wird das RAP-Framework installiert. Damit kann er natürlich noch nicht viel anfangen. Darauf folgend soll er aber in der Lage sein, Beispiele über „rt install rap-examples“ zu installieren. Dies wird die Installation von Komponenten für neue Benutzer sehr erleichtern. Das Schöne hierbei ist, dass wir lediglich das Interface erzeugen müssen. Die Installationslogik wird von p2 out-of-the-box geliefert.

Neben dieser Neuerung möchten wir auch die Cloud Images erweitern. Hier möchten wir es möglich machen, dass einer Instanz beim Starten eine p2 Repository URL übergeben wird, von der automatisch Komponenten in die Runtime auf dem Image installiert werden. Das würde die automatisierte Verteilung von EclipseRT-basierten Anwendungen ungemein vereinfachen.

JAXenter: Vielen Dank für dieses Gespäch!

Holger Staudacher arbeitet als Software-Entwickler und Consultant bei EclipseSource in Karlsruhe. Er ist Projektleiter des EclipseRT Packaging-Projekts und einer der Kernentwickler der Rich Ajax Platform (RAP). Staudacher interessiert sich für alles, was mit agiler Softwareentwicklung, Clean Code und verteilten Systemen zu tun hat.

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.