The table below lists the components in latest versions of the Java Enterprise Edition.
Many of the Java EE projects live on github.
After Java EE8, Java EE is moving to the EE4J project (Eclipse Enterprise For Java) aka Jakarta.
- I put the most important changes in red.
- Components with a [version number] between brackets are proposed for removal in a future release.
- An x indicates a technology is removed from the specification
- JSR's are shown as hyperlinked numbers.
- SE indicates that an API was moved to the standard edition
- eventually followed with the version number
- Java SE version history is in a separate post
- These API's will be removed from Java SE again with Java 11
- Web technologies are in a separate post
- EJB history is in a separate post
- I added some application servers at the bottom of the table.
Technologies | 151 J2EE 1.4 2003 |
244 Java EE5 2006 | 316 Java EE6 2009 | 342 Java EE7 4/2013 | 366 Java EE8 |
Java SE | 59 1.4 | 176 5 | 270 6 | 336 7 | 337 8 |
EJB | 153 2.1 | 220 3.0 | 318 3.1 | 345 3.2 | |
Servlet/JSP | 2.4 | 2.5 | 3.0 | 3.1 | 4.0 |
EE Management | 77 1.0 | ||||
JMS | 914 1.1 | 343 2.0 | 368 2.1 | ||
JTA 907 | 1.0 | 1.1 | 1.2 | ||
JavaMail 919 | 1.3 | 1.4 | 1.5 | 1.6 | |
Connector (JCA) | 112 1.5 | 1.5 | 322 1.6 | 1.7 | |
Java Activation Framework (JAF) 925 | 1.0 | 1.1 | SE:1.1.1 | ||
Web Services 109 | 1.1 | 1.2 | 1.3 | 1.4 | |
Web Services Metadata 181 | 2.0 | SE | SE:2.1 | ||
JAX-WS (SOAP) | 101 JAX-RPC 1.1 | 224 2.0 | SE:2.0 | SE:2.2 | |
JAX-RS (REST) | 311 1.1 | 339 2.0 | 370 2.1 | ||
JAXB 222 | 2.0 | SE:2.2 | |||
JSON-P | 353 1.0 | 3741.1 | |||
JSON-B 367 | 1.0 | ||||
JAXR (UDDI Registry) | 1.0 | [1.0] | x | ||
SOAP w attachments (SAAJ) 67 | 1.2 | 1.3 | SE | ||
StAX 173 | 1.0 | SE | |||
JMX | 1.2 | SE | SE | ||
container authorisation (JACC) 115 | 1.0 | 1.1 | 1.4 | 1.5 | |
container authentication (JASPIC) 196 | 1.0 | 1.1 | |||
Security 375 | 1.0 | ||||
Common annotations 250 | 1.0 | 1.1 | 1.2 | 1.3 | |
Java Persistence (JPA) | 1.0 | 317 2.0 | 338 2.1 | 2.2 | |
Bean Validation | 303 1.0 | 349 1.1 | 380 2.0 | ||
Managed Beans | 1.0 | ||||
Interceptors | 1.0 | 1.1 | 1.2 | ||
CDI for Java EE | 299 1.0 | 346 1.1 | 365 2.0 | ||
DI for Java 330 | 1.0 | ||||
Concurrency utilities 236 | 1.0 | ||||
State management 350 | 1.0 | ||||
Batch 352 | 1.0 | 1.1 | |||
Servers | |||||
Sun JSAS | 8 | 9.1 | |||
Glassfish | 2 | 3 (12/09) | 4 (5/13) | 5 (9/17) | |
JBoss / WildFly | 4 | 5 | 7 (7/11) | 8 (2/14) | 12 (2/18) |
IBM Websphere | 6 | 7 | 8 (6/11) | 9 (10/17) | |
Oracle Weblogic | 9 | 10 | 12.1.1 (12/11) | 12.2.1 (11/15) | |
Apache Geronimo | 1 | 2 | 3 (7/12) | - | |
Apache Tommee+ | 1.5 (9/12) | 7 (3/16) |
- J2EE 1.3(2001) introduced
- Message Driven Beans
- Local interfaces
- Profiles are a subset of the spec.
- Java EE Web profile (only profile currently defined)
- contents
- java SE
- web technologies, JTA, common annotations, JPA, validation, managed beans, interceptors, CDI, DI
- EJB Lite
- Stateless, Stateful, and Singleton session beans
- asynchronous session beans (EJB 3.2)
- only local EJB interfaces or no interfaces
- interceptors
- security
- transactions
- non persistent timer only (EJB 3.2)
- No Message Driven beans and remote invocation.
- JAX-RS (Java EE7)
- implemented by
- Resin 4
- Apache TomEE
Jazzie, thanks for the comment. Removed publicity link in it though - Jan
ReplyDeleteJazzie Casas said...
Java and to some degree .Net are the main choices because they have been consistently pegged as the “safe” choice to go with for mid-level project managers in the corporate world. No one was ever fired for choosing Java or Microsoft.
However, there are many large distributed applications these days that run primarily with technologies like Python, PHP, et al. Even companies like Google and Yahoo are heavily invested in these technologies. Java may be the main choice for enterprise development now, but it’s days are numbered as the only stalwart option to go with.
Let’s face it, many of these so called “enterprise applications” could easily have been written much faster and with less overhead using technologies like Python, PHP, et al.
I would even say more: many of these so called "enterprise applications" could easily have been written much faster and with less overhead using technologies like Python, PHP, Java et al.
ReplyDeleteThe point of Java Enterprise Editition is not the language/API's but separation and independence of architectural layers (interface, application logic, business logic, data layer, back end).
This architectural structure, pays off during maintenance and when evolving portions to new implementations.
This requires a bit more effort, I agree, still Java EE6 manages to do this in a pretty simple way. Here's a little example.
But, If your focus is on fast development, by all means go for a lighter architecture. You might also want to look at RAD environments like GRAILS.