Ausritt mit Apache Geronimo 2.2

Nur kurz nach der Veröffentlichung der Java EE 6 ist ein neues Major Release des Apache-Applikationsservers Geronimo erschienen.

In Pocket speichern vorlesen Druckansicht
Lesezeit: 14 Min.
Von
  • Frank Pientka
Inhaltsverzeichnis

Nur kurz nach der Veröffentlichung der neuen Enterprise-Java-Spezifikation, Java EE 6, ist ein neues Major Release des Apache-Applikationsservers Geronimo erschienen. Die Version 2.2 bewegt sich zwischen Java EE 5 und 6. heise Developer zieht eine Zwischenbilanz, wie sich der Geronimo in die Zukunft von Java einsortieren lässt.

Ehemalige JBoss-Entwickler begannen 2003 mit der Entwicklung des Geronimo-Anwendungsserver. Neben technischen Kontroversen spielten unterschiedliche Auffassungen über die richtige Lizenz eine Rolle für die Neuentwicklung eines weiteren freien Application Server. Statt der GNU Lesser General Public License (LGPL) bevorzugten die Entwickler die freiere und weniger restriktive Apache-Lizenz. Sie versprach breitere Einsatzmöglichkeiten, ist jedoch nicht kompatibel zur LGPL. Eine Software, die damit lizenzierten Code verwendet, muss man nicht erneut unter die Apache-Lizenz stellen. Außerdem erlaubt sie Veränderungen am Quellcode und die ausschließliche Weitergabe in Binärform, sofern Anwender die Lizenzbedingungen beifügen oder darauf hinweisen.

Von Geronimo verwendete Komponenten (Abb. 1)

Schon früh erreichte Geronimo die Kompatibilität mit den beiden "Java EE 6"-Vorgängern [1.4 (2005), 5.0 (2007)]. Das liegt einerseits an der großen Committer-Anzahl, andererseits an der Verwendung ausgereifter und verbreiteter Komponenten ("Best of Breed"-Ansatz) wie Jetty, Tomcat, Derby, Axis, OpenJPA, OpenEJB, um nur einige zu nennen. Als Integrationsprojekt spielt Geronimo für viele Apache-Projekte eine zentrale Rolle, da er die Referenzimplementierung der "Java EE"-Spezifikation zur Verfügung stellt und pflegt. Erschwert wurde die Kompatibilität mit der Java EE allenfalls durch Suns starke Kontrolle über den JCP (Java Community Process) und die späte Auslieferung des Java EE 6 TCK (Test Compatibility Kit) an die Apache Software Foundation (ASF). Doch das ist inzwischen Geschichte, verzögert jedoch die Adaption des neuen Standards.

Traditionell engagiert sich IBM am meisten an der Entwicklung des Geronimo, da der Konzern mit der WebSphere Application Server Community Edition (WAS CE) eine eigene frei verfügbare Produktvariante auf Basis des Anwendungsservers unter IBMs International License Agreement for Non-Warranted Programs (ILAN) herausgibt. Neben dem Support für beide Produkte bietet IBM eine aktuellere, professioneller wirkende Dokumentation als das Geronimo-Projekt an. Für Spezialthemen erscheinen regelmäßig Artikel auf IBMs developerWorks-Seiten oder als sogenannte Redbooks.

Eine Besonderheit Geronimos ist das von Anfang an umgesetzte modulare Konzept um einen Mikrokernel. Mit ihm lassen sich seine Funktionen einfach über eigene Plug-ins erweitern. Man erhält nicht nur einen Anwendungsserver "von der Stange", sondern kann sich ihn über sogenannte Assemblies auf seine Bedürfnisse zurechtschneidern. Es existieren zum Beispiel Plug-ins für die Webkonsole von ActiveMQ oder für den SCA-Container Tuscany.

Geronimo-Assemblies: Funktionen nach Maß (Abb. 2)

Ein weiterer Pluspunkt, der den Einstieg erleichtert, ist die Bedieneroberfläche, die aus einer Portlet-Ajax-Webkonsole und einer Kommandozeilenumgebung, der GShell, besteht. Das wirkt sich gegenüber Konkurrenten (JBoss, GlassFish) durch eine schlanke Architektur mit kurzen Startzeiten und einen geringen Ressourcenverbrauch aus. Neben der zertifizierten "Java EE"- (Big-G) gibt es eine Webversion (Little-G) und das Framework (Micro-G) als Assembly. Durch Plug-ins können Anwender zur Laufzeit von der kleinen zur großen Ausgabe wechseln. Geronimo steht in zwei Varianten als Binärversion zur Verfügung: zum einen mit dem Webcontainer Jetty und der Webservice-Engine CFX und zum anderen aus der Kombination aus Tomcat und Axis. Obwohl beide "Java EE"-Zertifizierungen bestanden haben, ist die Tomcat-Variante, hauptsächlich wegen der größeren Verbreitung des Servlet-Containers, die häufiger eingesetzte Ausgabe.

Deshalb findet sie sich in der WebSphere Community Edition, die zusätzlich IBMs Java Virtual Machine (JVM) unterstützt. Zusätzlich bringt WAS CE zusätzliche Fehlerkorrekturen und eine größere Unterstützung von Betriebssystemen, Datenbanken und LDAP-Servern mit. Auch wenn IBM keinen eigenen Sourcecode mitliefert, fließen Änderungen daran in spätere Geronimo-Versionen ein.