Title: Comparison

Apache OpenEJB and Apache TomEE are born from the same project and community.  They differ in two major ways, only one of them technical:

 - TomEE incorporates two additional projects; Tomcat and MyFaces
 - TomEE, as a name, more easily implies the breadth of technologies included

Effectively, TomEE is a superset of OpenEJB.  They share the same code and TomEE grew out of OpenEJB.

Note: this table is for TomEE 1.x, TomEE 7 comments are under it.

<table>
<tr>
<th></th>
<th>Tomcat</th>
<th>TomEE</th>
<th>TomEE JAX-RS (~ Microprofile)</th>
<th>TomEE+</th>
<th>TomEE PluME</th>
<th>OpenEJB</th>
</tr>

<tr>
<td>Java Servlets</td>
<td>(/)</td>
<td>(/)</td>
<td>(/)</td>
<td>(/)</td>
<td>(/)</td>
<td></td>
</tr>

<tr>
<td>Java ServerPages (JSP)</td>
<td>(/)</td>
<td>(/)</td>
<td>(/)</td>
<td>(/)</td>
<td>(/)</td>
<td></td>
</tr>

<tr>
<td>Java ServerFaces (JSF)</td>
<td></td>
<td>(/)</td>
<td>(/)</td>
<td>(/)</td>
<td>(/)</td>
<td></td>
</tr>

<tr>
<td>Java Transaction API (JTA)</td>
<td></td>
<td>(/)</td>
<td>(/)</td>
<td>(/)</td>
<td>(/)</td>
<td>(/)</td>
</tr>

<tr>
<td>Java Persistence API (JPA)</td>
<td></td>
<td>(/)</td>
<td>(/)</td>
<td>(/)</td>
<td>(/)</td>
<td>(/)</td>
</tr>

<tr>
<td>Java Contexts and Dependency Injection (CDI)</td>
<td></td>
<td>(/)</td>
<td>(/)</td>
<td>(/)</td>
<td>(/)</td>
<td>(/)</td>
</tr>

<tr>
<td>Java Authentication and Authorization Service (JAAS)</td>
<td></td>
<td>(/)</td>
<td>(/)</td>
<td>(/)</td>
<td>(/)</td>
<td>(/)</td>
</tr>

<tr>
<td>Java Authorization Contract for Containers (JACC)</td>
<td></td>
<td>(/)</td>
<td>(/)</td>
<td>(/)</td>
<td>(/)</td>
<td>(/)</td>
</tr>

<tr>
<td>JavaMail API</td>
<td></td>
<td>(/)</td>
<td>(/)</td>
<td>(/)</td>
<td>(/)</td>
<td>(/)</td>
</tr>

<tr>
<td>Bean Validation</td>
<td></td>
<td>(/)</td>
<td>(/)</td>
<td>(/)</td>
<td>(/)</td>
<td>(/)</td>
</tr>

<tr>
<td>Enterprise JavaBeans</td>
<td></td>
<td>(/)</td>
<td>(/)</td>
<td>(/)</td>
<td>(/)</td>
<td>(/)</td>
</tr>

<tr>
<td>Java API for RESTful Web Services (JAX-RS)</td>
<td></td>
<td></td>
<td>(/)</td>
<td>(/)</td>
<td>(/)</td>
<td>(/)</td>
</tr>

<tr>
<td>Java API for XML Web Services (JAX-WS)</td>
<td></td>
<td></td>
<td></td>
<td>(/)</td>
<td>(/)</td>
<td>(/)</td>
</tr>

<tr>
<td>Java EE Connector Architecture</td>
<td></td>
<td></td>
<td></td>
<td>(/)</td>
<td>(/)</td>
<td>(/)</td>
</tr>

<tr>
<td>Java Messaging Service (JMS)</td>
<td></td>
<td></td>
<td></td>
<td>(/)</td>
<td>(/)</td>
<td>(/)</td>
</tr>

<tr>
<td>EclipseLink</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>(/)</td>
<td></td>
</tr>

<tr>
<td>Mojarra</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td>(/)</td>
<td></td>
</tr>

</table>


TomEE 7 targets JavaEE 7 and implements these specifications (in parenthesis the distibution(s) containing it if not part of the basic packages):

* WebSocket JSR 356
* JSON-P JSR 353
* Servlet 3.1 JSR 340
* JSF 2.2 JSR 344
* EL 3.0 JSR 341
* JSP 2.3 JSR 245
* JSTL 1.2 JSR 52
* JBatch (plus) JSR 352
* Concurrency utilities for EE JSR 236
* CDI 1.2, DI, Interceptors 1.2, Common Annotations JSR 346 + JSR 330 + JSR 318 + JSR 250
* Bean Validation 1.1 JSR 349
* EJB 3.2 JSR 345
* JavaEE Connector JSR 322
* JPA 2.1 JSR 338 (WARNING: openjpa based distributions provide a JPA 2.0 runtime)
* JMS 2.0 JSR 343 (layer based on ActiveMQ 5 / JMS 1.1 for default distributions)
* JTA 1.2 JSR 907
* Javamail 1.4 (NOTE: EE 7 requires 1.5)
* JAX-RS 2.0 JSR 339
* JAX-WS 2.2 JSR 224
* JAXB 2.2 JSR 222
* and more inherited from TomEE 1/JavaEE 6

