Java EE version history
Encyclopedia
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.
List of specifications:
List of specifications:
List of specifications:
List of specifications:
List of specifications:
Web Services Technologies:
Web Application Technologies:
Enterprise Application Technologies:
Management and Security Technologies:
Java EE-related Specs in Java SE 6:
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.
IBM's "yes" vote was caveated with:
Intel's was caveated with:
Red Hat commented
Apache voted NO with the following comment:
Java Platform, Enterprise Edition
Java Platform, Enterprise Edition or Java EE is widely used platform for server programming in the Java programming language. The Java platform differs from the Java Standard Edition Platform in that it adds libraries which provide functionality to deploy fault-tolerant, distributed, multi-tier...
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.
J2EE 1.2 (December 12, 1999)
The specification download page.List of specifications:
- Enterprise JavaBeanEnterprise JavaBeanEnterprise JavaBeans is a managed, server-side component architecture for modular construction of enterprise applications.The EJB specification is one of several Java APIs in the Java EE specification. EJB is a server-side model that encapsulates the business logic of an application...
s Specification (EJB), Version 1.1 - JavaServer PagesJavaServer PagesJavaServer Pages is a Java technology that helps software developers serve dynamically generated web pages based on HTML, XML, or other document types...
Specification (JSP), Version 1.1 - Java ServletJava ServletA servlet is a Java programming language class used to extend the capabilities of servers that host applications accessed via a request-response programming model. Although servlets can respond to any type of request, they are commonly used to extend the applications hosted by Web servers...
Specification, Version 2.2 - JDBC API, Version 2.0
- Java Naming and Directory InterfaceJava Naming and Directory InterfaceThe Java Naming and Directory Interface is a Java API for a directory service that allows Java software clients to discover and look up data and objects via a name. Like all Java APIs that interface with host systems, JNDI is independent of the underlying implementation...
Specification (JNDI), Version 1.2 - Java Message ServiceJava Message ServiceThe Java Message Service API is a Java Message Oriented Middleware API for sending messages between two or more clients. JMS is a part of the Java Platform, Enterprise Edition, and is defined by a specification developed under the Java Community Process as JSR 914...
(JMS), Version 1.0.2 - Java Transaction APIJava Transaction APIThe Java Transaction API is one of the Java Enterprise Edition APIs allowing distributed transactions to be done across multiple XA resources in a Java environment. JTA is a specification developed under the Java Community Process as JSR 907...
(JTA), Version 1.0.1 - Java Transaction ServiceJava transaction serviceThe Java Transaction Service is a specification for building a transaction manager that maps onto the Object Management Group Object Transaction Service used in the Common Object Request Broker Architecture architecture...
(JTS), Version 0.95 - JavaMailJavamailJavaMail is a Java API used to receive and send email via SMTP, POP3 and IMAP. JavaMail is built into the Java EE platform, but also provides an optional package for use in Java SE.On March 2, 2009, JavaMail 1.4.2 was released....
API Specification Version 1.1 - JavaBeans Activation FrameworkJavaBeans Activation FrameworkJavaBeans Activation Framework, or JAF, enables developers to:It also enables you to dynamically register types of arbitrary data and actions associated with particular kinds of data. Additionally, it enables a program to dynamically provide or retrieve JavaBeans that implement actions associated...
Specification (JAF), Version 1.0
J2EE 1.3 (September 24, 2001)
Developed under JSR 58List of specifications:
- Enterprise JavaBeanEnterprise JavaBeanEnterprise JavaBeans is a managed, server-side component architecture for modular construction of enterprise applications.The EJB specification is one of several Java APIs in the Java EE specification. EJB is a server-side model that encapsulates the business logic of an application...
s Specification (EJB), Version 2.0 - JavaServer PagesJavaServer PagesJavaServer Pages is a Java technology that helps software developers serve dynamically generated web pages based on HTML, XML, or other document types...
Specification (JSP), Version 1.2 - Java ServletJava ServletA servlet is a Java programming language class used to extend the capabilities of servers that host applications accessed via a request-response programming model. Although servlets can respond to any type of request, they are commonly used to extend the applications hosted by Web servers...
Specification, Version 2.3 - JDBC API, Version 2.1
- Java Naming and Directory InterfaceJava Naming and Directory InterfaceThe Java Naming and Directory Interface is a Java API for a directory service that allows Java software clients to discover and look up data and objects via a name. Like all Java APIs that interface with host systems, JNDI is independent of the underlying implementation...
Specification (JNDI), Version 1.2 - Java Message ServiceJava Message ServiceThe Java Message Service API is a Java Message Oriented Middleware API for sending messages between two or more clients. JMS is a part of the Java Platform, Enterprise Edition, and is defined by a specification developed under the Java Community Process as JSR 914...
(JMS), Version 1.0.2 - Java Transaction APIJava Transaction APIThe Java Transaction API is one of the Java Enterprise Edition APIs allowing distributed transactions to be done across multiple XA resources in a Java environment. JTA is a specification developed under the Java Community Process as JSR 907...
(JTA), Version 1.0.1 - Java Transaction ServiceJava transaction serviceThe Java Transaction Service is a specification for building a transaction manager that maps onto the Object Management Group Object Transaction Service used in the Common Object Request Broker Architecture architecture...
(JTS), Version 1.0 - JavaMailJavamailJavaMail is a Java API used to receive and send email via SMTP, POP3 and IMAP. JavaMail is built into the Java EE platform, but also provides an optional package for use in Java SE.On March 2, 2009, JavaMail 1.4.2 was released....
API Specification Version 1.1 - JavaBeans Activation FrameworkJavaBeans Activation FrameworkJavaBeans Activation Framework, or JAF, enables developers to:It also enables you to dynamically register types of arbitrary data and actions associated with particular kinds of data. Additionally, it enables a program to dynamically provide or retrieve JavaBeans that implement actions associated...
Specification (JAF), Version 1.0 - J2EE Connector Architecture, Version 1.0
- Java API for XML ProcessingJava API for XML ProcessingThe Java API for XML Processing, or JAXP , is one of the Java XML programming APIs. It provides the capability of validating and parsing XML documents...
(JAXP), Version 1.0 - Java Authentication and Authorization ServiceJava Authentication and Authorization ServiceJava Authentication and Authorization Service, or JAAS, pronounced "Jazz", is a Java security framework for user-centric security to augment the Java code-based security...
(JAAS), Version 1.0
J2EE 1.4 (November 11, 2003)
Developed under JSR 151List of specifications:
- Enterprise JavaBeanEnterprise JavaBeanEnterprise JavaBeans is a managed, server-side component architecture for modular construction of enterprise applications.The EJB specification is one of several Java APIs in the Java EE specification. EJB is a server-side model that encapsulates the business logic of an application...
s Specification (EJB), Version 2.1 - JavaServer PagesJavaServer PagesJavaServer Pages is a Java technology that helps software developers serve dynamically generated web pages based on HTML, XML, or other document types...
Specification (JSP), Version 2.0 (JSR 152)- JavaServer Pages Standard Tag LibraryJavaServer Pages Standard Tag LibraryThe JavaServer Pages Standard Tag Library , is a component of the Java EE Web application development platform. It extends the JSP specification by adding a tag library of JSP tags for common tasks, such as XML data processing, conditional execution, loops and internationalization...
(JSTL), Version 1.1 (JSR 52)
- JavaServer Pages Standard Tag Library
- Java ServletJava ServletA servlet is a Java programming language class used to extend the capabilities of servers that host applications accessed via a request-response programming model. Although servlets can respond to any type of request, they are commonly used to extend the applications hosted by Web servers...
Specification, Version 2.4 - JDBC API, Version 3.0
- Java Naming and Directory InterfaceJava Naming and Directory InterfaceThe Java Naming and Directory Interface is a Java API for a directory service that allows Java software clients to discover and look up data and objects via a name. Like all Java APIs that interface with host systems, JNDI is independent of the underlying implementation...
Specification (JNDI), Version 1.2 - Java Message ServiceJava Message ServiceThe Java Message Service API is a Java Message Oriented Middleware API for sending messages between two or more clients. JMS is a part of the Java Platform, Enterprise Edition, and is defined by a specification developed under the Java Community Process as JSR 914...
(JMS), Version 1.1 - Java Transaction APIJava Transaction APIThe Java Transaction API is one of the Java Enterprise Edition APIs allowing distributed transactions to be done across multiple XA resources in a Java environment. JTA is a specification developed under the Java Community Process as JSR 907...
(JTA), Version 1.0.1B - Java Transaction ServiceJava transaction serviceThe Java Transaction Service is a specification for building a transaction manager that maps onto the Object Management Group Object Transaction Service used in the Common Object Request Broker Architecture architecture...
(JTS), Version 1.0 - JavaMailJavamailJavaMail is a Java API used to receive and send email via SMTP, POP3 and IMAP. JavaMail is built into the Java EE platform, but also provides an optional package for use in Java SE.On March 2, 2009, JavaMail 1.4.2 was released....
API Specification, Version 1.2 - JavaBeans Activation FrameworkJavaBeans Activation FrameworkJavaBeans Activation Framework, or JAF, enables developers to:It also enables you to dynamically register types of arbitrary data and actions associated with particular kinds of data. Additionally, it enables a program to dynamically provide or retrieve JavaBeans that implement actions associated...
Specification (JAF), Version 1.0 - J2EE Connector Architecture, Version 1.5
- Java API for XML ProcessingJava API for XML ProcessingThe Java API for XML Processing, or JAXP , is one of the Java XML programming APIs. It provides the capability of validating and parsing XML documents...
(JAXP), Version 1.2 - Java Authentication and Authorization ServiceJava Authentication and Authorization ServiceJava Authentication and Authorization Service, or JAAS, pronounced "Jazz", is a Java security framework for user-centric security to augment the Java code-based security...
(JAAS), Version 1.0 - Java Authorization Service Provider Contract for Containers (JACC), Version 1.0
- Web Services for J2EE, Version 1.0
- Java API for XML-based RPC (JAX-RPC), Version 1.0
- Java API for XML RegistriesJava API for XML RegistriesJava API for XML Registries defines a standard API for Java platform applications to access and programmatically interact with various kinds of metadata registries. The JAXR API was developed under the Java Community Process as JSR 93....
(JAXR), Version 1.0 - Java Management ExtensionsJava Management ExtensionsJava Management Extensions is a Java technology that supplies tools for managing and monitoring applications, system objects, devices and service oriented networks. Those resources are represented by objects called MBeans...
(JMX), Version 1.1 - Java 2 Platform, Enterprise Edition Management Specification, Version 1.0
- Java 2 Platform, Enterprise Edition Deployment Specification, Version 1.0
Java EE 5 (May 11, 2006)
Developed under JSR 244List of specifications:
- Enterprise JavaBeanEnterprise JavaBeanEnterprise JavaBeans is a managed, server-side component architecture for modular construction of enterprise applications.The EJB specification is one of several Java APIs in the Java EE specification. EJB is a server-side model that encapsulates the business logic of an application...
s Specification (EJB), Version 3.0 - Java Persistence APIJava Persistence APIThe Java Persistence API, sometimes referred to as JPA, is a Java programming language framework managing relational data in applications using Java Platform, Standard Edition and Java Platform, Enterprise Edition....
(JPA), Version 1.0
- JavaServer PagesJavaServer PagesJavaServer Pages is a Java technology that helps software developers serve dynamically generated web pages based on HTML, XML, or other document types...
Specification (JSP), Version 2.1 - Java ServletJava ServletA servlet is a Java programming language class used to extend the capabilities of servers that host applications accessed via a request-response programming model. Although servlets can respond to any type of request, they are commonly used to extend the applications hosted by Web servers...
Specification, Version 2.5 - JavaServer FacesJavaServer FacesJavaServer Faces is a Java-based Web application framework intended to simplify development integration of web-based user interfaces....
(JSF), Version 1.2 - JavaServer Pages Standard Tag LibraryJavaServer Pages Standard Tag LibraryThe JavaServer Pages Standard Tag Library , is a component of the Java EE Web application development platform. It extends the JSP specification by adding a tag library of JSP tags for common tasks, such as XML data processing, conditional execution, loops and internationalization...
(JSTL), Version 1.2
- JDBC API, Version 3.0
- Java Naming and Directory InterfaceJava Naming and Directory InterfaceThe Java Naming and Directory Interface is a Java API for a directory service that allows Java software clients to discover and look up data and objects via a name. Like all Java APIs that interface with host systems, JNDI is independent of the underlying implementation...
Specification (JNDI), Version 1.2 - Java Message ServiceJava Message ServiceThe Java Message Service API is a Java Message Oriented Middleware API for sending messages between two or more clients. JMS is a part of the Java Platform, Enterprise Edition, and is defined by a specification developed under the Java Community Process as JSR 914...
(JMS), Version 1.1 - Java Transaction APIJava Transaction APIThe Java Transaction API is one of the Java Enterprise Edition APIs allowing distributed transactions to be done across multiple XA resources in a Java environment. JTA is a specification developed under the Java Community Process as JSR 907...
(JTA), Version 1.1 - Java Transaction ServiceJava transaction serviceThe Java Transaction Service is a specification for building a transaction manager that maps onto the Object Management Group Object Transaction Service used in the Common Object Request Broker Architecture architecture...
(JTS), Version 1.0 - JavaMailJavamailJavaMail is a Java API used to receive and send email via SMTP, POP3 and IMAP. JavaMail is built into the Java EE platform, but also provides an optional package for use in Java SE.On March 2, 2009, JavaMail 1.4.2 was released....
API Specification, Version 1.4 - JavaBeans Activation FrameworkJavaBeans Activation FrameworkJavaBeans Activation Framework, or JAF, enables developers to:It also enables you to dynamically register types of arbitrary data and actions associated with particular kinds of data. Additionally, it enables a program to dynamically provide or retrieve JavaBeans that implement actions associated...
Specification (JAF), Version 1.1 - J2EE Connector Architecture, Version 1.5
- Java API for XML ProcessingJava API for XML ProcessingThe Java API for XML Processing, or JAXP , is one of the Java XML programming APIs. It provides the capability of validating and parsing XML documents...
(JAXP), Version 1.3 - Java Authentication and Authorization ServiceJava Authentication and Authorization ServiceJava Authentication and Authorization Service, or JAAS, pronounced "Jazz", is a Java security framework for user-centric security to augment the Java code-based security...
(JAAS), Version 1.0 - Java Authorization Service Provider Contract for Containers(JACC), Version 1.1
- Web Services for Java EE, Version 1.2
- Java API for XML-based RPC (JAX-RPC), Version 1.1
- Java API for XML RegistriesJava API for XML RegistriesJava API for XML Registries defines a standard API for Java platform applications to access and programmatically interact with various kinds of metadata registries. The JAXR API was developed under the Java Community Process as JSR 93....
(JAXR), Version 1.0 - Java Management ExtensionsJava Management ExtensionsJava Management Extensions is a Java technology that supplies tools for managing and monitoring applications, system objects, devices and service oriented networks. Those resources are represented by objects called MBeans...
, Version 1.2 - Java Platform, Enterprise Edition Management Specification, Version 1.1
- Java Platform, Enterprise Edition Deployment Specification, Version 1.1
- Java API for XML-based Web Services (JAX-WS), Version 2.0
- Java Architecture for XML BindingJava Architecture for XML BindingJava Architecture for XML Binding allows Java developers to map Java classes to XML representations. JAXB provides two main features: the ability to marshal Java objects into XML and the inverse, i.e. to unmarshal XML back into Java objects...
(JAXB), Version 2.0 - SOAP with Attachments API for JavaSAAJThe SOAP with Attachments API for Java or SAAJ provides a standard way to send XML documents over the Internet from the Java platform.SAAJ enables developers to produce and consume messages conforming to the SOAP 1.1 specification and SOAP with Attachments note.Developers can also use it to write...
(SAAJ), Version 1.3 - Web Services Metadata for the Java Platform, Version 2.0
- Streaming API for XMLStAXStreaming API for XML is an application programming interface to read and write XML documents, originating from the Java programming language community.Traditionally, XML APIs are either:...
(StAX), Version 1.0
Java EE 6 (Dec 10, 2009)
Developed under JSR 316List of specifications:
Web Services Technologies:
- Java API for RESTful Web Services (JAX-RS), Version 1.1 JSR 311
- Implementing Enterprise Web Services, Version 1.3 JSR 109
- Java API for XML-Based Web Services (JAX-WS), Version 2.2 JSR 224
- Java Architecture for XML BindingJava Architecture for XML BindingJava Architecture for XML Binding allows Java developers to map Java classes to XML representations. JAXB provides two main features: the ability to marshal Java objects into XML and the inverse, i.e. to unmarshal XML back into Java objects...
(JAXB), Version 2.2 JSR 222 - Web Services Metadata for the Java Platform JSR 181
- Java API for XML-based RPC (JAX-RPC), Version 1.1 JSR 101
- Java APIs for XML Messaging, Version 1.3 JSR 67
- Java API for XML RegistriesJava API for XML RegistriesJava API for XML Registries defines a standard API for Java platform applications to access and programmatically interact with various kinds of metadata registries. The JAXR API was developed under the Java Community Process as JSR 93....
(JAXR), Version 1.0 JSR 93
Web Application Technologies:
- Java ServletJava ServletA servlet is a Java programming language class used to extend the capabilities of servers that host applications accessed via a request-response programming model. Although servlets can respond to any type of request, they are commonly used to extend the applications hosted by Web servers...
, Version 3.0 JSR 315 - JavaServer FacesJavaServer FacesJavaServer Faces is a Java-based Web application framework intended to simplify development integration of web-based user interfaces....
(JSF), Version 2.0 JSR 314 - JavaServer PagesJavaServer PagesJavaServer Pages is a Java technology that helps software developers serve dynamically generated web pages based on HTML, XML, or other document types...
(JSP), Version 2.2/Expression Language , Version 2.2 JSR 245 - JavaServer Pages Standard Tag LibraryJavaServer Pages Standard Tag LibraryThe JavaServer Pages Standard Tag Library , is a component of the Java EE Web application development platform. It extends the JSP specification by adding a tag library of JSP tags for common tasks, such as XML data processing, conditional execution, loops and internationalization...
(JSTL), Version 1.2 JSR 52 - Debugging Support for Other Languages, Version 1.0 JSR 45
Enterprise Application Technologies:
- Enterprise JavaBeanEnterprise JavaBeanEnterprise JavaBeans is a managed, server-side component architecture for modular construction of enterprise applications.The EJB specification is one of several Java APIs in the Java EE specification. EJB is a server-side model that encapsulates the business logic of an application...
s Specification (EJB), Version 3.1 JSR 318 - Java Persistence APIJava Persistence APIThe Java Persistence API, sometimes referred to as JPA, is a Java programming language framework managing relational data in applications using Java Platform, Standard Edition and Java Platform, Enterprise Edition....
(JPA), Version 2.0 JSR 317 - Contexts and Dependency Injection for Java (Web Beans 1.0) JSR 299
- Dependency Injection for Java, Version 1.0 JSR 330
- Bean Validation, Version 1.0 JSR 303
- Java EE Connector Architecture, Version 1.6 JSR 322
- Common Annotations for the Java Platform, Version 1.1 JSR 250
- Java Message ServiceJava Message ServiceThe Java Message Service API is a Java Message Oriented Middleware API for sending messages between two or more clients. JMS is a part of the Java Platform, Enterprise Edition, and is defined by a specification developed under the Java Community Process as JSR 914...
API, Version 1.1 JSR 914 - Java Transaction APIJava Transaction APIThe Java Transaction API is one of the Java Enterprise Edition APIs allowing distributed transactions to be done across multiple XA resources in a Java environment. JTA is a specification developed under the Java Community Process as JSR 907...
(JTA), Version 1.1 JSR 907 - JavaMailJavamailJavaMail is a Java API used to receive and send email via SMTP, POP3 and IMAP. JavaMail is built into the Java EE platform, but also provides an optional package for use in Java SE.On March 2, 2009, JavaMail 1.4.2 was released....
API, Version 1.4 JSR 919
Management and Security Technologies:
- Java Authentication Service Provider Interface for Containers JSR 196
- Java Authorization Contract for Containers, Version 1.3 JSR 115
- Java EE Application Deployment, Version 1.2 JSR 88
- J2EE Management, Version 1.1 JSR 77
Java EE-related Specs in Java SE 6:
- Java API for XML Processing (JAXP), Version 1.3 JSR 206
- JDBC Java Database Connectivity, Version 4.0 JSR 221
- Java Management ExtensionsJava Management ExtensionsJava Management Extensions is a Java technology that supplies tools for managing and monitoring applications, system objects, devices and service oriented networks. Those resources are represented by objects called MBeans...
(JMX), Version 2.0 JSR 255 - JavaBeans Activation FrameworkJavaBeans Activation FrameworkJavaBeans Activation Framework, or JAF, enables developers to:It also enables you to dynamically register types of arbitrary data and actions associated with particular kinds of data. Additionally, it enables a program to dynamically provide or retrieve JavaBeans that implement actions associated...
Specification (JAF), Version 1.1 JSR 925 - Streaming API for XML (StAX), Version 1.0 JSR 173
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.
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 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
- 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”.