• No results found

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.

EE.6.2

Java Platform, Standard Edition (Java SE)