This article is being considered for deletion in accordance with Wikipedia's deletion policy. |
Java platform editions |
---|
|
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.
Java Enterprise Edition, formerly Java 2 Platform, Enterprise Edition (J2EE), currently Jakarta EE, is a set of specifications, extending Java SE 8 with specifications for enterprise features such as distributed computing and web services. Java EE applications are run on reference runtimes, that can be microservices or application servers, which handle transactions, security, scalability, concurrency and management of the components it is deploying.
Announcement of the JPE (Java Platform for the Enterprise) project at Sun.
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 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.
Extensible Markup Language (XML) is a markup language that defines a set of rules for encoding documents in a format that is both human-readable and machine-readable. The W3C's XML 1.0 Specification and several other related specifications—all of them free open standards—define XML.
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 |
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 |
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 |
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 | |
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:
Intel's was caveated with:
Red Hat commented:
Apache voted NO with the following comment:
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.
HTML 5 is a software solution stack that defines the properties and behaviors of web page content by implementing a markup based pattern to it.
Technology | Version | JSR | Included in Web Profile |
---|---|---|---|
Web Application Technologies: | |||
Java API for WebSocket | 1.1 | JSR356 | |
Java API for JSON Processing | 1.0 | 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 | 1.0 | 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.3 | JSR109 | |
Java API for XML-Based Web Services (JAX-WS) | 2.2 | JSR224 | |
Web Services Metadata for the Java Platform | 2.1 | JSR181 | |
Java API for XML-based RPC (JAX-RPC) (Optional) | 1.1 | JSR101 | |
Java Architecture for XML Binding (JAXB) | 2.2 | JSR222 | |
Java APIs for XML Messaging | 1.3 | JSR67 | |
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 | |
Streaming API for XML (StAX) | 1.0 | JSR173 |
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.
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:
Following the Java EE 8 release, Oracle made the decision to move Java EE development to the Eclipse Foundation [6] and will be known, in future, as Jakarta EE [7] .
Technology | Version | JSR | Included in Web Profile |
---|---|---|---|
Web Application Technologies: | |||
Java API for WebSocket | 1.1 | JSR356 | |
Java API for JSON Binding | 1.0 | JSR367 | |
Java API for JSON Processing | 1.1 | JSR374 | |
Java Servlet | 4.0 | JSR369 | |
JavaServer Faces (JSF) | 2.3 | JSR372 | |
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 | 1.0 | JSR352 | |
Concurrency Utilities for Java EE | 1.0 | JSR236 | |
Contexts and Dependency Injection for Java (CDI) | 2.0 | JSR365 | |
Dependency Injection for Java | 1.0 | JSR330 | |
Bean Validation | 2.0 | JSR380 | |
Enterprise JavaBeans (EJB) | 3.2 | JSR345 | |
Interceptors | 1.2 | JSR318 | |
Java EE Connector Architecture | 1.7 | JSR322 | |
Java Persistence API (JPA) | 2.2 | JSR338 | |
Common Annotations for the Java Platform | 1.3 | JSR250 | |
Java Message Service API (JMS) | 2.0 | JSR343 | |
Java Transaction API (JTA) | 1.2 | JSR907 | |
JavaMail API | 1.6 | JSR919 | |
Web Services Technologies: | |||
Java API for RESTful Web Services (JAX-RS) | 2.1 | JSR370 | |
Implementing Enterprise Web Services | 1.3 | JSR109 | |
Web Services Metadata for the Java Platform | 2.1 | JSR181 | |
Java API for XML-based RPC (JAX-RPC) (Optional) | 1.1 | JSR101 | |
Java API for XML Registries (JAXR) | 1.0 | JSR93 | |
Management and Security Technologies: | |||
Java EE security API | 1.0 | JSR375 | |
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 | |
J2EE Management | 1.1 | JSR77 | |
Debugging Support for Other Languages | 1.0 | JSR45 | |
Java EE-related Specs in Java SE: | |||
Java Management Extensions (JMX) | 2.0 | JSR3 | |
SOAP with Attachments API for Java (SAAJ) Specification | 1.3 | JSR67 | |
Streaming API for XML (StAX) | 1.0 | JSR173 | |
Java API for XML Processing (JAXP) | 1.6 | JSR206 | |
Java Database Connectivity | 4.0 | JSR221 | |
Java Architecture for XML Binding (JAXB) | 2.2 | JSR222 | |
Java API for XML-Based Web Services (JAX-WS) | 2.2 | JSR224 | |
JavaBeans Activation Framework (JAF) | 1.1 | JSR925 |
Enterprise JavaBeans (EJB) is one of several Java APIs for modular construction of enterprise software. EJB is a server-side software component that encapsulates business logic of an application. An EJB web container provides a runtime environment for web related software components, including computer security, Java servlet lifecycle management, transaction processing, and other web services. The EJB specification is a subset of the Java EE specification.
The Java Transaction API (JTA), one of the Java Enterprise Edition APIs, enables distributed transactions to be done across multiple X/Open XA resources in a Java environment. JTA is a specification developed under the Java Community Process as JSR 907. JTA provides for:
The Java Message Service (JMS) API is a Java message-oriented middleware API for sending messages between two or more clients. It is an implementation to handle the producer–consumer problem. JMS is a part of the Java Platform, Enterprise Edition, and was defined by a specification developed at Sun Microsystems, but which has since been guided by the Java Community Process. It is a messaging standard that allows application components based on Java EE to create, send, receive, and read messages. It allows the communication between different components of a distributed application to be loosely coupled, reliable, and asynchronous.
Java Platform, Standard Edition is a computing platform for development and deployment of portable code for desktop and server environments. Java SE was formerly known as Java 2 Platform, Standard Edition (J2SE).
The Java Community Process (JCP), established in 1998, is a formalized mechanism that allows interested parties to develop standard technical specifications for Java technology. Anyone can become a JCP Member by filling a form available at the JCP website. JCP membership for organizations and commercial entities requires annual fees – but is free for individuals.
JavaServer Faces (JSF) is a Java specification for building component-based user interfaces for web applications and was formalized as a standard through the Java Community Process being part of the Java Platform, Enterprise Edition. It is also a MVC web framework that simplifies construction of user interfaces (UI) for server-based applications by using reusable UI components in a page.
Java Management Extensions (JMX) 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. In the API, classes can be dynamically loaded and instantiated. Managing and monitoring applications can be designed and developed using the Java Dynamic Management Kit.
The Web Services Invocation Framework (WSIF) supports a simple Java API for invoking Web services, no matter how or where the services are provided. The framework allows maximum flexibility for the invocation of any Web Services Description Language (WSDL)-described service.
BeanShell is a Java-like scripting language, invented by Patrick Niemeyer. It runs in the Java Runtime Environment (JRE) and uses a variation of the Java syntax, in addition to scripting commands and syntax.
The JavaServer Pages Standard Tag Library (JSTL) 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, database access, loops and internationalization.
GlassFish is an open-source application server project started by Sun Microsystems for the Java EE platform and now sponsored by Oracle Corporation. The supported version is called Oracle GlassFish Server. GlassFish is free software, dual-licensed under two free software licences: the Common Development and Distribution License (CDDL) and the GNU General Public License (GPL) with the classpath exception.
RMI-IIOP denotes the Java Remote Method Invocation (RMI) interface over the Internet Inter-Orb Protocol (IIOP), which delivers Common Object Request Broker Architecture (CORBA) distributed computing capabilities to the Java platform. It was initially based on two specifications: the Java Language Mapping to OMG IDL, and CORBA/IIOP 2.3.1.
The Java API for XML Web Services (JAX-WS) is a Java programming language API for creating web services, particularly SOAP services. JAX-WS is one of the Java XML programming APIs. It is part of the Java EE platform.
The Java Persistence API (JPA) is a Java application programming interface specification that describes the management of relational data in applications using Java Platform, Standard Edition and Java Platform, Enterprise Edition.
OpenJPA is an open source implementation of the Java Persistence API specification. It is an object-relational mapping (ORM) solution for the Java language, which simplifies storing objects in databases. It is open-source software distributed under the Apache License 2.0.
JAX-RS: Java API for RESTful Web Services (JAX-RS) is a Java programming language API spec that provides support in creating web services according to the Representational State Transfer (REST) architectural pattern. JAX-RS uses annotations, introduced in Java SE 5, to simplify the development and deployment of web service clients and endpoints.
Bean Validation defines a metadata model and API for JavaBean validation. The metadata source is annotations, with the ability to override and extend the meta-data through the use of XML validation descriptors.
The JBoss Enterprise Application Platform is a subscription-based/open-source Java EE-based application server runtime platform used for building, deploying, and hosting highly-transactional Java applications and services. The JBoss Enterprise Application Platform is part of the JBoss Enterprise Middleware portfolio of software. Because it is Java-based, the JBoss application server operates across platforms; it is usable on any operating system that supports Java. The JBoss Enterprise Application Platform was developed by JBoss, now a division of Red Hat.