# Apache TomEE

Apache TomEE (gesprochen „Tommy“) ist die Java Enterprise Edition von Apache Tomcat (Tomcat + Jakarta EE = TomEE) und kombiniert verschiedene Java-Enterprise-Projekte einschließlich Apache OpenEJB, Apache OpenWebBeans, Apache OpenJPA, Apache MyFaces und weitere. Im Oktober 2011 wurde das Projekt durch die Oracle Corporation als mit dem Java EE 6 Web Profile kompatible Implementierung zertifiziert. Apache TomEE 9.0.0.RC1 ist Jakarta EE 9.1 zertifiziert.

## Komponenten

TomEE beinhaltet je nach Distribution (s. u.) folgende Open-Source-Komponenten:
| Komponente | Beschreibung |
| Apache Tomcat | HTTP-Server und Servlet-Container, der Java Servlets und JavaServer Pages (JSP) unterstützt. |
| Apache OpenEJB | Open-Source Enterprise JavaBeans (EJB) Container-System. |
| Apache OpenWebBeans | Open-Source Java Contexts and Dependency Injection (CDI)-Implementierung. |
| Apache OpenJPA | Open-Source Java Persistence API (JPA) 2.1 Implementierung. |
| Apache Geronimo Transaction | Open-Source Java Transaction API (JTA) 1.2 Implementierung. |
| Apache MyFaces | Open-Source Java Server Faces (JSF) Implementierung. |
| Apache ActiveMQ | Open-Source Java Message Service (JMS) Implementierung. |
| Apache CXF | Web Services Frameworks mit unterschiedlichen Protokollen, wie SOAP, XML/HTTP, RESTful HTTP. |
| Apache Derby | Vollständiges Relationales Datenbank-Verwaltungssystem (RDBMS) mit nativer Java Database Connectivity (JDBC) Unterstützung. |

### TomEE WebProfile

Das TomEE WebProfile enthält folgende Komponenten:
* Komponente
* Jakarta Activation
* Jakarta Mail (JavaMail)
* Jakarta XML Binding (JAXB)
* Jakarta Servlet
* Jakarta Server Pages (JSP)
* Jakarta Expression Language (EL)
* Jakarta Debugging Support for Other Languages
* Jakarta Standard Tag Library (JSTL)
* Jakarta Server Faces (JSF)
* Jakarta RESTful Web Services (JAX-RS)
* Jakarta WebSocket
* Jakarta JSON Processing (JSON-P)
* Jakarta JSON Binding (JSON-B)
* Jakarta Annotations
* Jakarta Enterprise Beans (EJB)
* Jakarta Transactions
* Jakarta Persistence (JPA)
* Jakarta Bean Validation
* Jakarta Managed Beans
* Jakarta Interceptors
* Jakarta Contexts and Dependency Injection (CDI)
* Jakarta Dependency Injection (@Inject)
* Jakarta Security (Java EE Enterprise Security)
* Jakarta Authentication (JAAS)

## Apache TomEE-Distributionen

| Distribution \ Komponente | Jakarta Web Profile | JPA OpenJPA | JPA Eclipse Link | JSF Mojarra | JSF MyFaces | MicroProfile | Jakarta Connectors | JAX-WS | JMS |
| Apache TomEE WebProfile | ja | ja | nein | nein | ja | nein | nein | nein | nein |
| Apache TomEE MicroProfile | ja | ja | nein | nein | ja | ja | nein | nein | nein |
| Apache TomEE+ | ja | ja | nein | nein | ja | ja | ja | ja | ja |
| Apache TomEE PluME | ja | ja | ja | ja | nein | ja | ja | ja | ja |

## Geschichte

Das OpenEJB-Projekt wurde 1999 von Richard Monson-Haefel und David Blevins als Open-Source-Implementierung der Enterprise JavaBeans-Spezifikation begonnen. Blevins führte die Entwicklung von OpenEJB fort und integrierte die Komponenten dieses Projektes mit Apache Geronimo. Im Jahr 2003 wurde die OpenEJB-Komponente zu einem Projekt das unter der Schirmherrschaft der Apache Software Foundation operierte. Zu dieser Zeit wurde sie mit dem Ziel überarbeitet um Tomcat als eingebetteten Web-Container nutzen zu können. Eine Betaversion von TomEE wurde im Oktober 2011 veröffentlicht und die erste Version für den produktiven Einsatz wurde im April 2012 ausgeliefert. Ab Version 9 wird der Namensraum jakarta verwendet. Anwendungen, die den Namensraum javax benutzen, können diese Version nicht verwenden.

### Versionsunterschiede

Der unterschiedlichen Komponenten und deren Basis.
| TomEE Version | Tomcat Basis | Java SE version | Micro Profile Version | Jakarta EE Version |
| 9.x | 10.0.x | 11 | 5.0 | 9.1 |
| 8.x | 9.0.x | 8 | 2.0 | 8.0 |
| 7.1.x | 8.5.x | 7 or 8 | 1.4 | 7.0 |
| 7.0.x | 8.5.x | 7 or 8 | | 7.0 |

### Versionen

| Version | Veröffentlichungsdatum |
| 9.1.0 | 06. Juni 2023 |
| 9.0.0-M3 | 24. November 2020 |
| 9.0.0-M2 | 07. August 2020 |
| 9.0.0-M1 | 22. Juni 2020 |
| 8.0.5 | 24. November 2020 |
| 8.0.4 | 07. August 2020 |
| 8.0.3 | 22. Juni 2020 |
| 8.0.2 | 26. Mai 2020 |
| 8.0.1 | 20. Januar 2020 |
| 8.0.0 | 11. September 2019 |
| 8.0.0-M3 | 23. Mai 2019 |
| 8.0.0-M2 | 25. Januar 2019 |
| 8.0.0-M1 | 19. Oktober 2018 |
| 7.1.1 | 21. Juni 2019 |
| 7.1.0 | 07. September 2018 |
| 7.0.6 | 06. Juni 2019 |
| 7.0.5 | 23. Juli 2018 |
| 7.0.4 | 26. September 2017 |
| 7.0.3 | 13. März 2017 |
| 7.0.2 | 06. November 2016 |
| 7.0.1 | 23. Juni 2016 |
| 7.0.0 | 26. Mai 2016 |
| 7.0.0-M3 | 06. März 2016 |
| 7.0.0-M2 | 01. März 2016 |
| 7.0.0-M1 | 12. Dezember 2015 |
| 1.7.5 | 24. Oktober 2017 |
| 1.7.4 | 07. März 2016 |
| 1.7.3 | 04. Dezember 2015 |
| 1.7.2 | 18. Mai 2015 |
| 1.7.1 | 12. September 2014 |
| 1.7.0 | 10. August 2014 |
| 1.6.0.2 | 06. Mai 2014 |
| 1.6.0.1 | 16. April 2014 |
| 1.6.0 | 17. November 2013 |
| 1.5.2 | 17. März 2013 |
| 1.5.1 | 14. Dezember 2012 |
| 1.5.0 | 28. September 2012 |
| 1.0.0 | 27. April 2012 |
| 1.0.0 Beta 2 | 17. Januar 2012 |
| 1.0.0 Beta 1 | 02. Oktober 2011 |

## Kommerzielle Unterstützung

Zwei Jahre nach der Ankündigung von Apache TomEE auf der Messe JavaOne 2011 schlossen sich mehrere Apache TomEE-Entwickler zusammen um Tomitribe zu bilden, ein Unternehmen um der Apache TomEE-Gemeinschaft kommerzielle Unterstützung zu bieten und die Verbreitung von Open-Source-Werten zu fördern.
Ein weiteres Unternehmen, das kommerzielle Unterstützung für Apache TomEE im Unternehmensbereich bietet, ist ManageCat, die sich auch an vielen weiteren Apache Java-EE-Projekten beteiligen.