Greg Wilkins und Hugues Malphettes über Jetty @ Eclipse Helios

Jetty goes OSGi

Jetty ist ein weiterer Star im Eclipse-Helios-Universum. Der Server und Servlet-Container ist nach der Migration zu Eclipse Anfang 2009 zum ersten Mal an einem Eclipse-Release-Train beteiligt. Jetty-Entwickler Greg Wilkins und Hughes Malphettes erzählen, warum Jetty und OSGi dadurch immer bessere Freunde werden.

JAXenter: Hallo Greg! Hallo Hugues! Was ist Jetty?

Greg Wilkins: Das Jetty-Projekt< /a> entwickelte sich 1995 aus einem einfachen HTTP Server Modul für Java 0.9 heraus. Seit dieser Zeit hat Jetty eine signifikante Reife erlangt und wurde um zahlreiche Features ergänzt: einen konfigurierbaren Servlet Container, Http Client, asynchrone Verwaltung von Requests, Unterstützung für Comet und seit neuestem auch Websocket Support

JAXenter: Jetty nimmt zum ersten Mal an einem Eclipse-Release-Train teil. Welche Auswirkungen hatte die Teilnahme auf das Jetty-Projekt?

Greg Wilkins: Die Teilnahme bedeutete einige kleine Extra-Anstrengungen und ein wenig mehr Bürokratie. Was aber was am wichtigsten ist: Wir konnten das Jetty-Projekt um einige signifikante Zusatz-Funktionen bereichern, die es ermöglichen, Jetty als einen OSGi-Service zu nutzen, mit der Implementierung des HttpService Interface, RFC66 Webapps, Legacy Webapps oder Jetty-spezifische Web-Kontexte. Das wird Jetty zu einem Eclipse-Kernmodul machen, welches für alle EclipseRT- und OSGi-Anwender zur Verfügung steht.

Die Projekt-Migration zu Eclipse haben wir mit der Absicht vollzogen, eine bessere Integration mit den anderen Eclipse-Projekten und -Communities zu erzielen. Die Teilnahme am jährlichen Release ist ein wichtiger Schritt zum Erreichen dieses Ziels.

JAXenter: Ihr habt auch an der Entwicklung des EclipseRT Web Starter SDK mitgewirkt. Was hat es damit auf sich?

Hugues Malphettes: Das EclipseRT Web Starter Kit ist die Kombination aus drei Software-Komponenten. Erstens stellt Equinox die OSGi-Runtime. Zweitens liefert p2 die Möglichkeit, Software-Komponenten zu verwalten, neue zu installieren und zu aktualisieren sowie existierende zu pflegen. Drittens stellt Jetty den Support für alle Http-bezogenen Angelegenheiten.

Ziel von Jetty im EclipseRT Web Starter Kit ist es, einen möglichst weichen Übergang von J2EE nach OSGi anzubieten: Der Server wird mit denselben vertrauten jetty.xml-Konfigurations-Dateien eingerichtet. Die traditionellen J2EE-Web-Anwendungen werden durch den webapps-Ordner, die gemeinsamen Bibliotheken und den context-Ordner unterstützt. Auf der Seite von OSGi gibt es Support für HttpService und Web Bundles, wo Web-Anwendungen in OSGi Bundles eingebettet sind. Bei der Entwicklung können Eclipse-PDE-Anwender Web-Bundles einfach wie jedes andere OSGi-Bundle behandeln.

Http-Module mit OSGi zu entwickeln, ist sehr gewinnbringend bei komplexen Anwendungen, bei denen viele Web-Applikationen auf demselben Webserver deployed und eng miteinander integriert sind. Dank OSGi können die Bibliotheken der Web-Anwendungen gemeinsam genutzt werden. Services können jeder anderen Komponente zur Verfügung gestellt werden, ohne zur Kommunikation Nachrichten über einen Draht schicken zu müssen.

Wir haben diese Distribution in Zusammenarbeit mit anderen Projekten aus dem EclipseRT-Bereich unter der Federführung von EclipseRT-Projekt-Leiter Jeff McAffer entwickelt. OSGi mit Equinox und p2 ist eine fantastische Kombination zur Umsetzung des Konzeptes der Komponenten-basierten Softwareentwicklung.

Und Jetty passt als Http-Komponente hervorragend in dieses idyllische Bild. Jetty – ein rein „Server-seitiges“ Projekt – mit der IDE-Kultur von Eclipse zusammenzubringen, war sehr spannend. Jetzt, da wir Teil des EclipseRT-Teams sind, freuen wir uns darauf, weniger Zeit mit den Build- und IP-Prozessen zu verbringen und uns darauf zu konzentrieren, umzusetzen was die Community will.

JAXenter: Was waren die positiven und was die negativen Erfahrungen bei der Teilnahme am Helios-Release-Zug?

Greg Wilkins: Wir haben ja bereits die zusätzlichen Prozesse und die Bürokratie erwähnt, aber ich würde diese nicht als negative Punkte bezeichnen. Sie sind nötig zur Klärung nicht technischer Lizenzfragen und zum Schutz des Urheberrechts, und sie halfen auch dabei, einige kleine Ungereimtheiten in Jetty aufzudecken (und einige mehr in verschiedenen abhängigen Projekten).

Der größte Vorteil am Release-Train liegt offensichtlich in der besseren Eclipse-Integration von Jetty. Aber ein anderer wichtiger Punkt ist, dass wir so die Gelegenheit hatten, mit anderen Projekten zu interagieren, um unsere Build-Prozesse zu verbessern und anderen Eclipse-Projekten dabei zu helfen, dasselbe zu tun.

JAXenter: Und wie geht es weiter mit Jetty?

Greg Wilkins: Das nächste große Ding am Jetty-Horizont ist das Jetty-8-Release, welches Unterstützung für das Servlet 3.0 API bringen wird. Allerdings gibt es noch keine große Nachfrage für das API 3.0, und die meisten der neuen Features werden bereits in Jetty-7 unterstützt. Wir werden uns deshalb nicht sonderlich mit Jetty-8 beeilen und uns stattdessen auf die Verbesserung der Integration von Jetty-7 in andere Projekte konzentrieren sowie auf das Upgrade der Nutzer alter Jetty-Releases auf die Version 7. Jetty-8 ist sehr ähnlich zu 7, sodass die Migration auf von 7 nach 8 zum großen Teil trivial sein wird.

JAXenter: Und die obligatorische Fußball-Frage: Welche Mannschaft ähnelt am meisten dem Jetty-Projekt?

Greg Wilkins: Einerseits haben wir wie Manchester United unsere Fans überall auf der Welt. Aber andererseits pflegen wir wie Arsenal auch die schönste Spielkultur – ohne dabei immer auf dem ersten Platz zu stehen (aber doch immer mit vorne dabei)!

Hugues Malphettes ist Software Engineer bei Italio und ist der ursprüngliche Committer des Eclipse BPMN Modeler. OSGi und Jetty sind Teil seiner neuen Passion.

Greg Wilkins ist Chefentwickler des Open-Source Servlet-Servers Jetty und Mitglied der Expertengruppe zur Servlet-Spezifikation im Java Community Process. Greg hat Beiträge geleistet für Geronimo, JBoss, activemq, DWR und andere Open-Source-Projekte. Greg ist Gründer und CTO von Webtide.com und CEO von Mort Bay Consulting.

Geschrieben von
Kommentare

Schreibe einen Kommentar

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