Java EE version history
The Java Platform, Enterprise Edition or Java EE (formerly known as Java 2 Platform, Enterprise Edition or J2EE) has undergone several changes since 1.0 as well as numerous additions of new specifications.
JPE (May 1998)
Announcement of the JPE (Java Professional Edition) project at Sun.
J2EE 1.2 (December 12, 1999)
Technology | Version |
---|---|
JDBC Standard Extension API | 2.0 |
Java Naming and Directory Interface Specification (JNDI) | 1.2 |
RMI-IIOP | 1.1 |
Java Servlet | 2.2 |
JavaServer Pages (JSP) | 1.1 |
Enterprise JavaBeans (EJB) | 1.1 |
Java Message Service API (JMS) | 1.0 |
Java Transaction API (JTA) | 1.0 |
JavaMail API | 1.1 |
JavaBeans Activation Framework (JAF) | 1.0 |
J2EE 1.3 (September 24, 2001)
J2EE 1.3 abandoned support for the heavy-weight distributed object model(RMI-IIOP/CORBA) entirely, in favor of XML-based solution. Added JavaServer Pages Standard Tag Library (JSTL), Java Authentication and Authorization Service (JAAS) and J2EE Connector Architecture.
Technology | Version |
---|---|
JDBC Extension | 2.0 |
Java Naming and Directory Interface Specification (JNDI) | 1.2 |
Java API for XML Processing (JAXP) | 1.1 |
Java Servlet | 2.3 |
JavaServer Pages (JSP) | 1.2 |
JavaServer Pages Standard Tag Library (JSTL) | 1.0 |
Enterprise JavaBeans (EJB) | 2.0 |
J2EE Connector Architecture | 1.0 |
Java Message Service API (JMS) | 1.0 |
Java Transaction API (JTA) | 1.0 |
JavaMail API | 1.2 |
JavaBeans Activation Framework (JAF) | 1.0 |
Java Authentication and Authorization Service (JAAS) | 1.0 |
J2EE 1.4 (November 11, 2003)
In response to emerging web services, J2EE 1.4 added XML-based web services support. This version also added component-based JavaServer Faces (JSF) technology intended to replace JSP.
Technology | Version | JSR |
---|---|---|
Web Services Technologies: | ||
Web Services for J2EE 1.1 | 1.0 | |
Java API for XML Processing (JAXP) | 1.2 | |
Java API for XML-based RPC (JAX-RPC) | 1.1 | |
Java API for XML Registries (JAXR) | 1.0 | |
Web Application Technologies: | ||
Java Servlet | 2.4 | JSR154 |
JavaServer Pages (JSP) | 2.0 | JSR152 |
JavaServer Pages Standard Tag Library (JSTL) | 1.1 | JSR52 |
JavaServer Faces (JSF) | 1.1 | JSR127 |
Enterprise Application Technologies: | ||
Enterprise JavaBeans (EJB) | 2.1 | JSR153 |
J2EE Connector Architecture | 1.5 | JSR112 |
Java Message Service API (JMS) | 1.1 | |
Java Transaction API (JTA) | 1.0 | |
JavaMail API | 1.3 | |
JavaBeans Activation Framework (JAF) | 1.0 | |
Management and Security Technologies: | ||
Java Authorization Service Provider Contract for Containers (JACC) | 1.0 | |
Java Management Extensions (JMX) | 1.2 | |
Enterprise Edition Management API | 1.0 | |
Enterprise Edition Deployment API | 1.1 |
Java EE 5 (May 11, 2006)
In response to the complaints and heavyweight troublesome impression about J2EE (1.2, 1.3, 1.4) when developers reluctantly use and light-weight Spring/Struts/Hibernate framework is increasingly popular, J2EE was rebranded as Java EE 5 which comes in line with Java SE 1.5, trying to make EJB lighter weight by replacing entity bean with independent JPA. It also added Java API for XML-based Web Services (JAX-WS) and SOAP with Attachments API for Java (SAAJ), with the former text-based and asynchronous, the latter either binary-based or text-based but synchronous which is intended to be a simpler replacement for RMI-IIOP/CORBA.
Technology | Version | JSR |
---|---|---|
Web Services Technologies: | ||
Web Services | 1.2 | JSR109 |
Java API for XML-Based Web Services (JAX-WS) | 2.0 | JSR224 |
Java Architecture for XML Binding (JAXB) | 2.0 | JSR222 |
Web Service Metadata for the Java Platform | 2.0 | JSR181 |
Java API for XML-Based RPC (JAX-RPC) | 1.1 | JSR101 |
Java API for XML Registries (JAXR) | 1.0 | JSR93 |
SOAP with Attachments API for Java (SAAJ) | 1.3 | JSR67 |
Streaming API for XML (StAX) | 1.0 | JSR173 |
Web Application Technologies: | ||
Java Servlet | 2.5 | JSR154 |
JavaServer Faces (JSF) | 1.2 | JSR252 |
JavaServer Pages (JSP) | 2.1 | JSR245 |
JavaServer Pages Standard Tag Library (JSTL) | 1.2 | JSR52 |
Debugging Support for Other Languages | 1.0 | JSR45 |
Enterprise Application Technologies: | ||
Enterprise JavaBeans (EJB) | 3.0 | JSR220 |
Java Persistence API (JPA) | 1.0 | JSR220 |
Java EE Connector Architecture | 1.5 | JSR112 |
Common Annotations for the Java Platform | 1.0 | JSR250 |
Java Message Service API (JMS) | 1.1 | JSR914 |
Java Transaction API (JTA) | 1.1 | JSR907 |
JavaMail API | 1.4 | JSR919 |
JavaBeans Activation Framework (JAF) | 1.1 | JSR925 |
Management and Security Technologies: | ||
Java Authorization Service Provider Contract for Containers (JACC) | 1.1 | JSR115 |
J2EE Application Deployment | 1.2 | JSR88 |
J2EE Management | 1.1 | JSR77 |
Java EE 6 (December 10, 2009)
Starting from Java EE 6, Java EE is trying to incorporate and standardize concepts/features from and merge with Spring framework. The SOAP with Attachments API for Java (SAAJ) is now part of Java SE 6, and is thus available to Java EE 6 applications without needing to be included in the EE specification.[1] The Java API for RESTful Web Services (JAX-RS) is now included in Java EE.[2] Java EE 6 also standardized DI, AOP and others from Spring into Contexts and Dependency Injection for Java, Dependency Injection for Java, Bean Validation, Managed Beans, and Interceptors.
Java EE 6 introduced the concept of profile, which represents a configuration of the platform suited to a particular class of applications. The Web Profile offers a complete stack, with technologies addressing presentation and state management (JavaServer Faces, JavaServer Pages), core web container functionality (Servlet), business logic (Enterprise JavaBeans Lite), transactions (Java Transaction API), persistence (Java Persistence API) and more.
Java EE 6 also started pruning process which would prune and deprecate old and unused APIs.
Technology | Version | JSR | Included in Web Profile |
---|---|---|---|
Web Services Technologies: | |||
Java API for RESTful Web Services (JAX-RS) | 1.1 | JSR311 | |
Web Services | 1.3 | JSR109 | |
Java API for XML-Based Web Services (JAX-WS) | 2.2 | JSR224 | |
Java Architecture for XML Binding (JAXB) | 2.2 | JSR222 | |
Web Services Metadata for the Java Platform | 2.1 | JSR181 | |
Java API for XML-based RPC (JAX-RPC) | 1.1 | JSR101 | |
Java APIs for XML Messaging (JAXM) | 1.3 | JSR67 | |
Java API for XML Registries (JAXR) | 1.0 | JSR93 | |
Web Application Technologies: | |||
Java Servlet | 3.0 | JSR315 | |
JavaServer Faces (JSF) | 2.0 | JSR314 | |
JavaServer Pages (JSP) | 2.2 | JSR245 | |
Expression Language (EL) | 2.2 | JSR245 | |
JavaServer Pages Standard Tag Library (JSTL) | 1.2 | JSR52 | |
Debugging Support for Other Languages | 1.0 | JSR45 | |
Enterprise Application Technologies: | |||
Enterprise JavaBeans (EJB) | 3.1 | JSR318 | Lite |
Java Persistence API (JPA) | 2.0 | JSR317 | |
Contexts and Dependency Injection for Java (CDI) | 1.0 | JSR299 | |
Dependency Injection for Java | 1.0 | JSR330 | |
Bean Validation | 1.0 | JSR303 | |
Managed Beans | 1.0 | JSR316 | |
Interceptors | 1.1 | JSR318 | |
Java EE Connector Architecture | 1.6 | JSR322 | |
Common Annotations for the Java Platform | 1.1 | JSR250 | |
Java Message Service API (JMS) | 1.1 | JSR914 | |
Java Transaction API (JTA) | 1.1 | JSR907 | |
JavaMail API | 1.4 | JSR919 | |
Management and Security Technologies: | |||
Java Authentication Service Provider Interface for Containers (JASPIC) | 1.0 | JSR196 | |
Java Authorization Service Provider Contract for Containers (JACC) | 1.4 | JSR115 | |
Java EE Application Deployment | 1.2 | JSR88 | |
J2EE Management | 1.1 | JSR77 |
Java EE 6 was first going to be developed under JSR 313 but was canceled. Java EE 6 was developed under JSR 316 and released on December 10, 2009.
The development was plagued with controversy, although passed by 14 yes votes, 1 no vote (Apache), and 1 abstention (Borland), members aired concerns relating to the licensing terms applied by Sun Microsystems.[3]
IBM's "yes" vote was caveated with:
- IBM's vote is based on the technical merits of this JSR and is not a vote on the licensing terms. IBM supports licensing models that create an open and level playing field by allowing third parties to create independent implementations of Java Specifications and that do not allow individuals or companies to exercise unnecessary control for proprietary advantage. We support open source as a licensing model for contributions in the JCP, and would hope others will support this direction. This comment is not necessarily directed at the current business or license terms for this JSR, however, it is a statement of IBM's preferred licensing model.
Intel's was caveated with:
- The Spec Lead has told us there are no "field of use restrictions" on implementations for this particular JSR. The Apache open letter about Java SE[4] claimed that a confidential license for a required JCP test suite restricts how Independent Implementations of that JCP spec can be used. Licenses to test for JCP compatibility must not be used to limit or restrict competing, compatible implementations; licenses containing such limitations do not meet the requirements of the JSPA, the agreement under which the JCP operates. For every JCP ballot, we will ask the Spec Lead whether such restrictions exist in their license.
Red Hat commented:
- The spec lead of the EE6 specification has confirmed that the EE6 TCK would contain no "field of use restrictions", as originally raised by Apache with regard to another JSR (i.e. the SE TCK licensing). That is a good thing. However, in the absence of an explicit JSPA rule that would forbid such field-of-use restrictions, we will remain worried that a similar issue might resurface anytime, for any JSR. Consequently, in the future, for any submitted JSR (by SUNW or not), we will specifically expect the spec lead to provide clear information on that aspect and take the answer in account when casting our vote.
Apache voted NO with the following comment:
- The Apache Software Foundation's vote is based on the point of view that this spec lead - Sun - is in violation of the JSPA[4] and therefore shouldn't be allowed to start another JSR until the above matter is resolved. This vote is not a comment on the technical merits of the JSR. If not for the issue of the spec lead, the ASF would have otherwise voted "yes".
Java EE 7 (June 12, 2013)
In keeping up with the HTML5 trend, Java EE 7 added Java API for WebSocket, Java API for JSON Processing, and Servlet async and non-blocking NIO which was a primary reason Play Framework was started. In response to emerging big data trend, Java EE 7 added a complete solution for Batch Applications for the Java Platform.
Technology | Version | JSR | Included in Web Profile |
---|---|---|---|
Web Application Technologies: | |||
Java API for WebSocket | JSR356 | ||
Java API for JSON Processing | JSR353 | ||
Java Servlet | 3.1 | JSR340 | |
JavaServer Faces (JSF) | 2.2 | JSR344 | |
Expression Language (EL) | 3.0 | JSR341 | |
JavaServer Pages (JSP) | 2.3 | JSR245 | |
JavaServer Pages Standard Tag Library (JSTL) | 1.2 | JSR52 | |
Enterprise Application Technologies: | |||
Batch Applications for the Java Platform | JSR352 | ||
Concurrency Utilities for Java EE | 1.0 | JSR236 | |
Contexts and Dependency Injection for Java (CDI) | 1.1 | JSR346 | |
Dependency Injection for Java | 1.0 | JSR330 | |
Bean Validation | 1.1 | JSR349 | |
Managed Beans | 1.0 | JSR316 | |
Enterprise JavaBeans (EJB) | 3.2 | JSR345 | |
Interceptors | 1.2 | JSR318 | |
Java EE Connector Architecture | 1.7 | JSR322 | |
Java Persistence API (JPA) | 2.1 | JSR338 | |
Common Annotations for the Java Platform | 1.2 | JSR250 | |
Java Message Service API (JMS) | 2.0 | JSR343 | |
Java Transaction API (JTA) | 1.2 | JSR907 | |
JavaMail API | 1.5 | JSR919 | |
Web Services Technologies: | |||
Java API for RESTful Web Services (JAX-RS) | 2.0 | JSR339 | |
Implementing Enterprise Web Services | 1.4 | JSR109 | |
Java API for XML-Based Web Services (JAX-WS) | 2.2 | JSR224 | |
Web Services Metadata for the Java Platform | JSR181 | ||
Java API for XML-based RPC (JAX-RPC) (Optional) | 1.1 | JSR101 | |
Java Architecture for XML Binding (JAXB) | 2.2 | JSR222 | |
Java API for XML Registries (JAXR) | 1.0 | JSR93 | |
Management and Security Technologies: | |||
Java Authentication Service Provider Interface for Containers | 1.1 | JSR196 | |
Java Authorization Service Provider Contract for Containers | 1.5 | JSR115 | |
Java EE Application Deployment (Optional) | 1.2 | JSR88 | |
Java EE Management | 1.1 | JSR77 | |
Debugging Support for Other Languages | 1.0 | JSR45 | |
Java EE-related Specs in Java SE: | |||
Java Architecture for XML Binding (JAXB) | 2.2 | JSR222 | |
Java API for XML Processing (JAXP) | 1.3 | JSR206 | |
Java Database Connectivity | 4.0 | JSR221 | |
Java Management Extensions (JMX) | 2.0 | JSR3 | |
JavaBeans Activation Framework (JAF) | 1.1 | JSR925 | |
Java APIs for XML Messaging | 1.3 | JSR67 | |
Streaming API for XML (StAX) | 1.0 | JSR173 |
Java EE 8 (JSRs approved on 22 Sep, 2014, Final Release is expected by the end of 2017)
The main focus of Java EE 8 is on support for HTML5 and the emerging HTTP 2.0 standard; enhanced simplification and managed bean integration; and improved infrastructure for applications running in the cloud, continuing the direction of improved simplification, while extending the range of the Java EE platform to encompass emerging technologies in the web space and in cloud technology.
- support for the emerging HTTP 2.0 standard
- support for server-sent events.
- Java API for JSON Binding (JSR-367)
- action-based Model View Controller (MVC) (JSR-371) to complement the component-based JSF
- JCache (JSR-107)
- More cloud support(configuration, multiple tenants, security, REST-based APIs for monitoring and management)[5]
In accordance with the pruning process defined by the Java EE 6 specification, it is considered designating the following as Proposed Optional in this release:
- the EJB 2.x client view APIs (EJBObject, EJBHome, EJBLocalObject, EJBLocalHome) and support for CORBA IIOP interoperability.
References
- ↑ http://docs.oracle.com/cd/E19798-01/821-1841/girdr/index.html
- ↑ http://docs.oracle.com/javaee/6/api/
- ↑ See http://www.oreillynet.com/onjava/blog/2007/07/jsr_316_java_ee_6_spec_approve_1.html
- 1 2 Open Letter to Sun Microsystems
- ↑ Krill, Paul. "Exclusive: Oracle to reboot Java EE for the cloud". Retrieved 2016-07-22.
External links
- Java EE 6 SDK Downloads
- An Introduction to the Java EE 5 Platform
- JSR 316 (The proposed Java EE 6 Platform)
- Java version history