Java Platform is evolving fast, with more and more technologies standarlized. Some of the technology is actually inactive for long, some are very exciting. It is meaningful to have a overall check of all the Java EE technologies.
The following technologies are Java EE 8 standard, so the version of related technologies in the following table are as follows by default unless it is specified:
JavaEE 8 contains a total of 32 JSR, plus 8 related JSR in JavaSE, and a summary (JSR 366)
I originally summerrize on confluence, now I bring it here to continue maintain (Not finished yet)
Java EE 8 Technology | Version | JSR | Releaes Date | JavaEE 8 API | Implementation | Spring5/SpringBoot 2.2 |
---|---|---|---|---|---|---|
Servlet | 4.0 | JSR-369 | Sep 2017 | javax.servlet:javax.servlet-api:4.0.0 | Servlet Glassfish 5 Tomcat Jetty Wildfly | Spring can be configured with embedded Servlet Servers such as Tomcat or Jetty. |
CDI | 2.0 | JSR-365 | May 2017 | javax.enterprise:cdi-api:2.0 | Full Implement CDI 2: Weld 3(Seam) - Used by JBOSS Apache OpenWebBeans - Used by TomEE |
Spring/SpringBoot implements CDI in its own way. Spring doesn’t implement Java EE CDI 2.0 and is confirmed that they will support CDI 2 in the near future. |
DI (Included in CDI 2) | 1.0 | JSR-330 | Oct 2009 | javax.inject:javax.inject:1 | Implementation of DI: Spring Guice Dagger | Spring implements DI 1.0 (JSR-330) which is a subset of CDI 2. |
JSON-P | 1.1 | JSR-374 | May 2017 | javax.json:javax.json-api:1.1 | Implementation of JSON-P: Glassfish javax.json - Used by JBoss | |
JAX-RS | 2.1 | JSR-370 | Aug 2017 | javax.ws.rs:javax.ws.rs-api:2.1 | Full Implementation: Jersey(2.27) - Eclipse-RESTeasy - Used by JBOSS; Apache-CXF(3.2.0) - used by TomEE+ | |
WebSocket | 1.1 | JSR-356 | Aug 2014 | javax.websocket:javax.websocket-api:1.1 | Tyrus - Used by Glassfish; Tomcat, Jetty;Undertow - Used by Wildfly | |
Java Security API(JASPIC, JAAS, JACC) | 1.0 | JSR-375 | Sep 2017 | javax.security.enterprise:javax.security.enterprise-api:1.0 | Soteria - Used by Glassfish(org.glassfish.soteria:javax.security.enterprise:1.0) | |
Batch Applications | 1.0 | JSR-352 | Maintenance Release - Aug 2014 | javax.batch:javax.batch-api:1.0.1 | JBatch; Spring Batch 3 | Spring Batch 3 is a full implementation of JSR 352 |
JTA | 1.2 | JSR-907 | May 2013 | javax.transaction:javax.transaction-api:1.2 | Glassfish 5;Apache Geronimo Transaction - Used by TomEE;Narayana(Seam) - Used by Wildfly; Atomikos - A commercial JPA;Bitronix - Not active, but a popular standalone one. | Spring provides an abstraction on top of Transaction Management, including JTA. |
JPA | 2.2 | JSR-338 | javax.persistence:javax.persistence-api:2.2 | Full Implementation of JPA 2.2; EclipseLink 2.7 onwards; Hibernate 5.3 onwards;DataNucleus 5.1 onwards | Spring DATA JPA is an abstraction which builds on top of other JPA provider such as Hibernate JPA | |
Bean Validation | 2.0 | JSR-380 | Aug 2017 | javax.validation:validation-api:2.0.0.final | Hibernate Validator - Used by JBoss;Apache BVal - Used by TomEE | Spring integrates with Hibernate Validation.The thing to flag is that spring doesn’t turn on validation by default, there is a need to use @Valid to turn it on |
JMS | 2.0 | JSR-343 | Maintenance Release: Mar 2015 | javax.jms:javax.jms-api:2.0 | Eclipse OpenMQ - Used in GlassFish Apache ActiveMQ - Used by TomEE+;Active MQ 5 - Classic - doesn’t support JMS 2 Active MQ Artemis support JMS 2 RabbitMQ - Not a compliance to JMS HornetQ - Full compliance of JMS2, has merged to Artemis Amazon SQS - Support JMS 1.1 |
|
EJB | 3.2 | JSR-345 | May 2013 | javax.ejb:javax.ejb-api:3.2 | Apache OpenEJB - Used by TomEE Glassfish 5.0 | |
Connector Architecture | 1.7 | JSR-322 | June 2013 | javax.resource:javax.resource-api:1.7 | GlassFish 5.0 Apache Geronimo Connector - Used by TomEE+ | |
JSP | 2.3 | JSR-245 | June 2013 | |||
Debugging Support | 1.0 | JSR-45 | Nov 2003 | |||
JSTL | 1.2 | JSR-52 | Maintenance Release 2 May 2006 | |||
JSF | 2.3 | JSR-372 | April 2017 | Apache MyFaces - Used by TomEE+(Not sure TomEE) | ||
Common Annotation | 1.3 | JSR-250 | Sep 2016 | javax.annotation:javax.annotation-api:1.3 | ||
EL - Unified Expression Language | 3.0 | JSR-341 | May 2013 | |||
Interceptors | 1.2 | JSR 318 | Maintenance Release - Aug 2017 | |||
Concurrency Utilities | 1.0 | JSR-236 | May 2013 | javax.enterprise.concurrent:javax.enterprise.concurrent-api:1.0 |
Java EE 8 Technology | Version | JSR | Releaes Date | JavaEE 8 API | Spring5/SpringBoot 2.2 | Implementation - Reference Implementation |
---|---|---|---|---|---|---|
JMX - Java Management Extensions | 2.0 | JSR 3 | ||||
SOAP for SAAJ | 1.3 | JSR 67 | ||||
StAX - Streaming API for XML | 1.0 | JSR-173 | ||||
JAXB - Java Architecture for XML Binding(Removed from Java 11) | 2.2 | JSR 224 | ||||
JAXP - Java API for XML Processing | 1.6 | JSR-206 | ||||
JAX-WS - Java API for XML-Based Web Services (Removed from Java 11) | 2.2 | JSR-224 | ||||
JAF - JavaBeans Activation Framework(Removed from Java 11) | 1.1 | JSR-925 | ||||
JDBC | 4.2 | |||||
RMI & CORBA(Removed from Java 11) | ||||||
Java Beans |