# Apache Geronimo

Apache Geronimo ist ein Open-Source-Jakarta-EE-Anwendungsserver. Geronimo wurde unter Federführung der Apache Software Foundation (ASF) entwickelt und unter der Apache-Lizenz veröffentlicht. Die Weiterentwicklung des Application Servers wurde 2013 nach der Version 3 zugunsten von MicroProfile-Komponentenentwicklung eingestellt. Als Alternative wird Apache TomEE Application Server empfohlen.

## Ziel

Ziel des Projektes ist eine quelloffene, modular aufgebaute Implementierung des JavaEE-Standards und die Integration in das bestehende Open-Source- und Java-basierte Umfeld der ASF und darüber hinaus. Der Server bestand im Juni 2005 die Kompatibilitätstests (TCK) des Java Community Process (als dritter Open-Source-Server nach JBoss und JOnAS).

## Geschichte

Im Oktober 2005 stellte IBM eine kostenlose Version seines WebSphere Application Server auf Basis von Apache Geronimo unter dem Namen Websphere Application Server Community Edition vor.
Am 28. April 2008 wurde die Version 2.1.1 veröffentlicht, die nach dem Standard JavaEE 5 zertifiziert wurde. Für den vollen JavaEE 6 Standard und das darin enthaltene Web Profile ist die aktuelle Version 3.0 zertifiziert.

## Bestandteile und Komponenten

Geronimo besteht aus einem Kernel, dem Mikrokernel, auf dem die Architektur des Servers aufbaut. Zusammen mit vielen verschiedenen Komponenten ermöglicht diese Architektur unter anderem die Konfiguration und den Aufbau eines vollen JavaEE-Stacks. Dies hilft Entwicklern bei der Integration schon vorhandener und gut getesteter stabiler Komponenten in die Architektur des Servers.
Im Geronimo Projekt finden so auch folgende Komponenten Anwendung:
| Komponente | Beschreibung |
| Apache Tomcat | Servlet-Container mit Unterstützung für Servlet und JavaServer Pages (JSP) |
| Jetty | Servlet-Container mit Unterstützung für Java Servlet und JavaServer Pages – als Alternative zu Apache Tomcat. |
| Apache ActiveMQ | Open source Java Message Service (JMS) Provider, unterstützt Message-Driven Beans (MDBs). |
| Apache OpenEJB | Open source Enterprise JavaBeans (EJB) Container System und EJB Server mit Unterstützung für Enterprise JavaBeans, inklusive Container Managed Persistence (CMP), Bean Managed Persistence (BMP) und EJB Query Language (EJBQL). |
| Apache OpenJPA | Open source Jakarta Persistence API (JPA) Implementierung. |
| Apache ServiceMix | Open source Enterprise Service Bus (ESB). |
| Apache Axis und Apache CXF | Eine SOAP (Axis, CXF) und JSR 93 (JAXR) Implementierung (Scout) für Webservices und WS-Interoperability(WS-I) Basic Profile Unterstützung mit JAX-WS und UDDI Unterstützung. |
| Apache Derby | Rein Java-basiertes relationales Datenbank-Management-System (RDBMS) mit nativer JDBC-Anbindung. |
| Apache WADI | Clustering-, Load-Balancing- und Failover-Lösung. |
| Apache Yoko | Robuster und performanter CORBA-Server. |
| OSGi | Als OSGi-Framework werden Equinox (was standardmäßig ausgewählt ist) und Apache Felix unterstützt. Die OSGI-Verwaltung setzt ab Geronimo 3.0 auf Apache Karaf und Apache Aries auf. |
Ein wesentliches Entwicklungsziel für spätere Versionen ist die durchgängige Unterstützung von „Webservices“, „OSGi“ und „Jakarta EE“ 6.

## Versionshistorie

| Legende: | Ältere Version; nicht mehr unterstützt | Ältere Version; noch unterstützt | Aktuelle Version | Aktuelle Vorabversion | Zukünftige Version |
| Versionsnummer | Freigabedatum | Jakarta EE kompatibel |
| Ältere Version; nicht mehr unterstützt: 1.0 | 15. November 2005 | J2EE 1.4 |
| Ältere Version; nicht mehr unterstützt: 1.1 | 26. Juni 2006 | J2EE 1.4 |
| Ältere Version; nicht mehr unterstützt: 1.1.1 | 18. September 2006 | J2EE 1.4 |
| Ältere Version; nicht mehr unterstützt: 1.2 | 22. Dezember 2006 | J2EE 1.4 |
| Ältere Version; nicht mehr unterstützt: 2.0.1 | 20. August 2007 | J2EE 1.4 |
| Ältere Version; nicht mehr unterstützt: 2.0.2 | 19. Oktober 2007 | J2EE 1.4 |
| Ältere Version; nicht mehr unterstützt: 2.1 | 18. Februar 2008 | Jakarta EE 5.0 |
| Ältere Version; nicht mehr unterstützt: 2.1.1 | 28. April 2008 | Jakarta EE 5.0 |
| Ältere Version; nicht mehr unterstützt: 2.1.2 | 5. August 2008 | Jakarta EE 5.0 |
| Ältere Version; nicht mehr unterstützt: 2.1.3 | 15. September 2008 | Jakarta EE 5.0 |
| Ältere Version; nicht mehr unterstützt: 2.1.4 | 31. März 2009 | Jakarta EE 5.0 |
| Ältere Version; nicht mehr unterstützt: 2.1.5 | 14. April 2010 | Jakarta EE 5.0 |
| Ältere Version; nicht mehr unterstützt: 2.1.6 | 6. Juli 2010 | Jakarta EE 5.0 |
| Ältere Version; nicht mehr unterstützt: 2.1.7 | 30. November 2010 | Jakarta EE 5.0 |
| Ältere Version; noch unterstützt: 2.1.8 | 29. Dezember 2011 | Jakarta EE 5.0 |
| Ältere Version; nicht mehr unterstützt: 2.2 | 30. Dezember 2009 | Jakarta EE 5.0 |
| Ältere Version; nicht mehr unterstützt: 2.2.1 | 11. Dezember 2010 | Jakarta EE 5.0 |
| Ältere Version; nicht mehr unterstützt: 3.0.0 | 13. Juli 2012 | Jakarta EE 6.0 (voll und web profile) |
| Aktuelle Version: 3.0.1 | 28. Mai 2013 | Jakarta EE 6.0 (voll und web profile) mit Java 7, JDBC 4.1, JSF 2.1 |