Java EE application components execute in runtime environments provided by the containers that are a part of the Java EE platform. The full Java EE platform supports four types of containers corresponding to Java EE application component types: application client containers; applet containers; web containers for servlets, JSP pages, JSF applications; and enterprise bean containers. A Java EE profile may support only a subset of these component types, as defined by the individual Java EE profile specification.
The per-technology requirements in this chapter apply to any Java EE product that includes the technology. Note that even though a Java EE profile might not require support for a particular technology, a Java EE product based on that Java EE profile might nonetheless include support for the technology. In such a case, the requirements for that technology described in this chapter would apply.
EE.6.1.1 Java Compatible APIs
The containers provide all application components with at least the Java Platform, Standard Edition, v7 (Java SE) APIs. Containers may provide newer versions of the
Java SE platform, provided they meet all the Java EE platform requirements. The Java SE platform includes the following enterprise technologies:
• Java IDL • JDBC • RMI-IIOP • JNDI • JAXP • StAX • JAAS • JMX • JAX-WS • JAXB • JAF • SAAJ • Common Annotations
In particular, the applet execution environment must be Java SE 7 compatible. Since typical browsers don’t yet provide such support, Java EE products may make use of the Java Plugin to provide the required applet execution environment. Use of the Java Plugin is not required, but is one method of meeting the
requirement to provide a Java SE 7 compatible applet execution environment. This specification adds no requirements to the applet container beyond those specified by Java SE.
Some of the enterprise technologies that are included in Java SE 7 are also available independently of the Java SE platform, and this specification requires newer versions of some of these technologies, as described in the following section.
The specifications for the Java SE APIs are available at http:// docs.oracle.com/javase/7/docs/.
EE.6.1.2 Required Java Technologies
The full Java EE platform also provides a number of Java technologies in each of the containers defined by this specification. Table EE.6-1 indicates the technologies with their required versions, which containers include the technologies, and whether the technology is required (REQ), proposed optional (POPT), or optional (OPT).
Each Java EE profile specification will include a similar table describing which technologies are required for the profile. Note that some technologies are marked Optional, as described in the next section.
Table EE.6-1 Java EE Technologies
Java Technology App Client Web EJB Status
EJB 3.2 Ya Y Y REQ, OPTb
Servlet 3.1 N Y N REQ JSP 2.3 N Y N REQ EL 3.0 N Y N REQ JMS 2.0 Y Y Y REQ JTA 1.2 N Y Y REQ JavaMail 1.5 Y Y Y REQ Connector 1.7 N Y Y REQ
Web Services 1.4 Y Y Y REQ
JAX-RPC 1.1 Y Y Y OPT
JAX-WS 2.2 Y Y Y REQ
JAX-RS 2.0 N Y N REQ
WebSocket 1.0 N Y N REQ
JSON-P 1.0 Y Y Y REQ
Concurrency Utilities for Java EE 1.0
N Y Y REQ
Batch 1.0 N Y Y REQ
JAXB 2.2 Y Y Y REQ
JAXR 1.0 Y Y Y OPT
Java EE Management 1.1 Y Y Y REQ
Java EE Deployment 1.2c N N N OPT
JACC 1.5 N Y Y REQ
All classes and interfaces required by the specifications for the APIs must be provided by the Java EE containers indicated above. In some cases, a Java EE product is not required to provide objects that implement interfaces intended to be implemented by an application server, nevertheless, the definitions of such interfaces must be included in the Java EE platform. If an implementation includes support for a technology marked as Optional, that technology must be supported in the containers specified above. If a product implementation does not support a technology marked as Optional, it must not include the APIs for that technology.1
JSP Debugging 1.0 N Y N REQ
JSTL 1.2 N Y N REQ
Web Services Metadata 2.1 Y Y Y REQ
JSF 2.2 N Y N REQ
Common Annotations 1.2 Y Y Y REQ
Java Persistence 2.1 Y Y Y REQ
Bean Validation 1.1 Y Y Y REQ
Managed Beans 1.0 Y Y Y REQ
Interceptors 1.2 Y Y Y REQ
Contexts and Dependency Injection for Java EE 1.1
Y Y Y REQ
Dependency Injection for Java 1.0
Y Y Y REQ
a. Client APIs only.
b. EJB entity beans and associated EJB QL only. c. See section EE.6.22 on page 183 for details.
1.Note that a component specification is permitted to specify an exception
to this in order to accommodate interface type dependencies—for exam- ple, the EJB SessionContext dependency on the javax.xml.rpc.han- dler.MessageContext type.
Table EE.6-1 Java EE Technologies
EE.6.1.3 Pruned Java Technologies
As the Java EE specification has evolved, some of the technologies originally included in Java EE are no longer as relevant as they were when they were
introduced to the platform. The Java EE expert group follows a process first defined by the Java SE expert group (http://blogs.oracle.com/mr/entry/
removing_features) to prune technologies from the platform in a careful and orderly way that minimizes the impact to developers using these technologies, while allowing the platform to grow even stronger. In short, the process defines two steps: 1. The Umbrella Expert Group (UEG) for release N of the platform decides to
propose that a particular feature be removed. The specification for that release documents the proposal.
2. The UEG for release N+1 decides whether to remove the feature from that release, retain it as a required component, or leave it in the "proposed removal" state for the next UEG to decide.
The result of successfully applying this policy to a feature is not the actual deletion of the feature but rather the conversion of the feature from a required component of the platform into an optional component. No actual removal from the specification occurs, although the feature may be removed from products at the choice of the product vendor.
Technologies that have been pruned as of Java EE 7 are marked Optional in Table EE.6-1. Technologies that may be pruned in a future release are marked Proposed Optional in Table EE.6-1.