HomeIndex > Road map for Java EE6 Web Profile

Basics of Java EE 6

Java EE 6 Report Card

This table will be used to track the progress of the Apache Geronimo Java EE 6.0 implementation.  The implementation will be staged over builds of the 3.0 release.  This incremental rollout will allow users to provide early feedback on the new functions.  The milestone driver levels in the table below indicate when the code for a particular function was available. It does not make any indication as to TCK status. The project won't aim to declare overall Java EE 6.0 functional compliance and official TCK certification until Geronimo 3.0 is complete.

Spec

Version 

JSR No.

Changes from  JEE 5

Latest Package(s) 

Milestone Build
(Initial Drop)

Web Application Technologies

 

 

 

 

 

Servlet

Servlet 3.0

JSR 315

Upgrade from Servlet 2.5

Tomcat-7.0-SNAPSHOT
Jetty-8.0-SNAPSHOT

 

Java Server Pages

JSP 2.2

JSR 245

Maintenance update from JSP 2.1

Jasper-7.0.0.0-SNAPSHOT

 

Expression Language 2.2

EL 2.2

JSR 245

Maintenance update from JSP 2.1

Jasper-7.0.0.0-SNAPSHOT

 

JSP Debug

JSP Debug 1.0

JSR 45

Unchanged for Java EE 6.0

Jasper-7.0.0.0

 

Java Server Faces

JSF 2.0

JSR 314

Upgrade from JSF 1.2

Myfaces-impl-2.0.0-SNAPSHOT

 

Java Server Pages Standard Tag Library

JSTL 1.2

JSR 52

Unchanged from Java EE5

Glassfish-jstl-1.2

 

EJBs in war files

n/a

JSR 316

New support for web profile

Geronimo/OpenEJB 3.1

 

Global JNDI additions

n/a

JSR 316

New feature for Java EE 6

Geronimo implementation

 

Datasource resource definition

n/a

JSR 316

New feature for Java EE 6

Geronimo implementation

 

 

 

 

 

 

 

Enterprise Application Technologies

 

 

 

 

 

JavaBeans Activation Framework

JAF 1.1

JSR 925

Unchanged from Java EE 5

Geronimo implementation

 

JavaMail

JavaMail 1.4

JSR 919

Unchanged from Java EE 5

Geronimo implementation

 

Java Persistence API

JPA 2.0

JSR 317

Upgrade from JPA 2.0

OpenJPA-2.0.0-M3

 

Java Transactions API

JTA 1.1

JSR 907

Unchanged from Java EE 5

Geronimo implementation

 

Java Message Service API

JMS 1.1

JSR 914

Unchanged from Java EE 5

Activemq-5.3.0

 

Java EE Connector Architecture

JCA 1.6

JSR 322

Upgrade from JCA 1.5

Geronimo implementation

 

Java Authorization Contract for Containers

JACC 1.4

JSR 115

Maintenance update

Geronimo implementation

 

Java Authorization SPI for Containers

JASPIC 1.0

JSR 196

New for Java EE 6

Geronimo implementation

 

Common Annotations for the Java Platform

Annotations 1.1

JSR 250

Upgrade from Annotations 1.0

Geronimo implementation

 

Enterprise JavaBeans

EJB 3.1

JSR 318

Upgrade from EJB 3.0

OpenEJB 3.1-Snapshot

 

Interceptors

Interceptors 1.1

JSR 318

Upgrade from EJB 3.0

OpenEJB 3.1-Snapshot

 

Bean Validation 1.0

Validation 1.0

JSR 302

New for Java EE 5

Glassfish RI

 

Managed Beans 1.0

Managed Beans 1.0

JSR 318

New for Java EE 5

OpenEJB 3.1-Snapshot

 

Dependency Injection for Java 1.0

DI 1.0

JSR 330

New for Java EE 5

OpenWebBeans

 

Contexts and Dependency Injection for Java EE 1.0

CDI 1.0

JSR 299

New for Java EE 5

OpenWebBeans

 

 

 

 

 

 

 

Management

 

 

 

 

 

Java EE Management

Java EE Mgmt 1.1

JSR 77

Unchanged from Java EE 5

Geronimo implementation

 

Java EE Application Deployment

App Deploy 1.2

JSR 88

Unchanged from Java EE 5

Geronimo implementation

 

 

 

 

 

 

 

Web Services - Axis2

 

 

 

 

 

Implementing Web Services

WSEE 1.3-MR2

JSR 109

Maintenance Update for WSEE 1.3

Geronimo implementation

 

Java API for XML-Based Web Services

JAX-WS 2.2

JSR 224

New maintenance release

Axis2 implementation

 

Java API for RESTful Web Services

JAX-RS 1.1

JSR 311

New for Java EE 6

Wink implementation

 

Java Architecture for XML Binding

JAXB 2.2

JSR 222

New maintenance release

Glassfish JAXB Implementation 2.2

 

Java API for XML-Based RPC

JAX-RPC 1.1

JSR 101

Same as Java EE 5 

Axis2 1.5

 

Java API for XML Registries

JAXR 1.0

JSR 93

Same as Java EE 5

Scout 1.1

 

Web Service Metadata for the Java platform

WS Metadata 2.1

JSR 181

Unchanged from Java EE 5

Axis2 implementation

 

SOAP with Attachments API

SAAJ 1.3

JSR 67

Unchanged from Java EE 5

Axis2 implementation

 

Streaming API for XML

STAX 1.0

JSR 173

Unchanged from Java EE 5

Woodstox  3.2.8

 

 

 

 

 

 

 

Web Services - CXF

 

 

 

 

 

Implementing Web Services

WSEE 1.2

JSR 109

Maintenance Update from WSEE 1.1

Geronimo implementation

 

Java API for XML-Based Web Services

JAX-WS 2.2

Maintenance update from Java EE 5.0

CXF implementation 2.0-incubator-RC-SNAPSHOT

 

Java Architecture for XML Binding

JAXB 2.2

JSR 222

New maintenance release

Glassfish JAXB Implementation 2.2

 

Java API for XML-Based RPC

JAX-RPC 1.1

JSR 101

Same as Java EE 5 

Axis2 1.5

 

Java API for XML Registries

JAXR 1.0

JSR 93

Same as Java EE 5

Scout 1.1

 

Web Service Metadata for the Java platform

WS Metadata 2.1

JSR 181

Unchanged from Java EE 5.0

CXF implementation - 2.0-incubator-RC-SNAPSHOT

 

SOAP with Attachments API

SAAJ 1.3

JSR 67

Unchanged from Java EE 5

Glassfish SAAJ implementation 1.3

 

Streaming API for XML

STAX 1.0

JSR 173

New for Java EE 5.0

Woodstox  3.2.8

 

 

 

 

 

 

 

Misc

 

 

 

 

 

JDK 5.0 - Corba support

 

??

Unchanged from Javaa EE 5.0

Yoko-1.1

 

 

 

 

 

 

 

Web Profile Technologies

 

 

 

 

 

Servlet

Servlet 3.0

JSR 315

Upgrade from Servlet 2.5

Tomcat-7.0-SNAPSHOT
Jetty-8.0-SNAPSHOT

 

EJBs in war files

n/a

JSR 316

New support for web profile

Geronimo/OpenEJB 3.1

 

Global JNDI additions

n/a

JSR 316

New feature for Java EE 6

Geronimo implementation

 

Datasource resource definition

n/a

JSR 316

New feature for Java EE 6

Geronimo implementation

 

Java Server Pages

JSP 2.2

JSR 245

Maintenance update from JSP 2.1

Jasper-7.0.0.0-SNAPSHOT

 

Expression Language 2.2

EL 2.2

JSR 245

Maintenance update from JSP 2.1

Jasper-7.0.0.0-SNAPSHOT

 

JSP Debug

JSP Debug 1.0

JSR 45

Unchanged for Java EE 6.0

Jasper-7.0.0.0

 

Java Server Faces

JSF 2.0

JSR 314

Upgrade from JSF 1.2

Myfaces-impl-2.0.0-SNAPSHOT

 

Java Server Pages Standard Tag Library

JSTL 1.2

JSR 52

Unchanged from Java EE5

Glassfish-jstl-1.2

 

Common Annotations for the Java Platform

Annotations 1.1

JSR 250

Upgrade from Annotations 1.0

Geronimo implementation

 

Enterprise JavaBeans Lite

EJB 3.1 Lite

JSR 318

Upgrade from EJB 3.0

OpenEJB 3.1-Snapshot

 

Java Persistence API

JPA 2.0

JSR 317

Upgrade from JPA 2.0

OpenJPA-2.0.0-M3

 

Java Transactions API

JTA 1.1

JSR 907

Unchanged from Java EE 5

Geronimo implementation

 

Bean Validation 1.0

Validation 1.0

JSR 302

New for Java EE 5

Glassfish RI

 

Managed Beans 1.0

Managed Beans 1.0

JSR 318

New for Java EE 5

OpenEJB 3.1-Snapshot

 

Dependency Injection for Java 1.0

DI 1.0

JSR 330

New for Java EE 5

OpenWebBeans

 

Contexts and Dependency Injection for Java EE 1.0

CDI 1.0

JSR 299

New for Java EE 5

OpenWebBeans

 

Basics of Java EE 6 Web Profile

The Java EE 6 web profile is a specified minimal configuration targeted for small footprint servers that support "typical" web applications.  The Web profile is a minimal specification, so an implementation is free to add additional services or allow applications to provision additional services.  The required elements of the web profile are:

  • Java EE 6 (JSR-316)
  • Servlet 3.0 (JSR-315)
  • JavaServer Pages (JSP) 2.2 (JSR-245)
  • Expression Language (EL) 2.2 (JSR-245)
  • Debugging Support for Other Languages 1.0 (JSR-45)
  • Standard Tag Library for JavaServer Pages (JSTL) 1.2 (JSR-52)
  • JavaServer Faces (JSF) 2.0 (JSR-314)
  • Common Annotations for Java Platform 1.1 (JSR-250)
  • Enterprise JavaBeans (EJB) 3.1 Lite (JSR-318)
  • Java Transaction API (JTA) 1.1 (JSR-907)
  • Java Persistence API (JPA) 2.0 (JSR-317)
  • Dependency Injection for Java 1.0 (JSR-330)
  • Contexts and Dependency Injection for Java EE platform 1.0 (JSR-299)
  • Bean Validation 1.0 (JSR-303)
  • Managed Beans 1.0 (JSR-316)
  • Interceptors 1.1 (JSR-318)

Details on the current state of each of these is traced below.  Geronimo is already at the current level for some of these components, for others we'll need to locate updated versions.  Hopefully, this will be just new releases of components we already use, but this might also require developing some elements directly as part of Geronimo.

In addition, the Geronimo spec tree contains versions of the API classes for these different interfaces, so we will probably need to develop new versions of the API classes.

As a first step in developing these, we might want to create a plugin group that is an embodiment of the web profile using the Java EE 5 components currently in Geronimo.  This will give use a platform for experimenting with how to configure the server for the smaller footprint and how to allow additional services to be added to the mimimal profile configuration.  Also, as Java EE 6 compatible implementations become available, we can create additional plugins that allow the newer versions to be swapped in to the configurations. 

Additional Component Details

The current known state for each of these components in Geronimo is detailed here.  Feel free to update this information as new details emerge.

Component: Java EE 6 

Global JNDI

New "java:global", "java:app", and "java:module" namespaces will be required for all profiles of Java EE 6. As well @Resource and @EJB have been updated to have a new "lookup" attribute.

Names definable via annotation or in deployment descriptor (application, application-client, web, ejb-jar)

DataSource Resource Definition

For example:
@DataSourceDefinition(name="java:app/MyDataSource",
className="com.foobar.MyDataSource",
portNumber=6689,
serverName="myserver.com",
user="lance",
password="secret")

Can also be done via xml in deployment descriptor (application, application-client, web, ejb-jar)

EJBs in .war files

See related section under EJB 3.1

Component: Servlet 3.0 (JSR-315) 

Current Geronimo Provider

The servlet container can be either Tomcat 7 or Jetty 8?  The Tomcat artifact Geronimo uses contains patches applied on top of the Tomcat version.

According to the summary presented here:

Tomcat Releases

Tomcat servlet 3.0 is actively in the works, with an alpha release planned for around March 1st, 2010. 

For Jetty, there is a similar project plan for an 8.0.x version also planned at the time Servlet 3.0 goes final. Current information suggests an alpha or beta release around March 1st.

Status of Java EE 6 Activity

Unknown.  In the Tomcat community, this appears to have been discussed, but is not really under active development.  The Jetty community seems to be tracking the Servlet 3.0 activity a little more closely, but I've not found any projections for availability. 

Geronimo trunk is currently building with snapshot versions of both projects, but there are some issues that are being worked.

Component: JavaServer Pages 2.2 (JSR-245)

Current Geronimo Provider

Geronimo is currently relying on Jasper for the JSP implementation, which is developed as part of the Tomcat community. 

Status of Java EE 6 Activity

The JSP 2.2 work is complete and passing the TCKs. 

Component:  Expression Language (EL) 2.2 (JSR-245)

Current Geronimo Provider

This is provided by the JSP provider, so they're fairly tightly coupled.  

Status of Java EE 6 Activity

The EL 2.2 work is complete and passing the TCKs. 

Component:  Debugging Support for Other Languages 1.0 (JSR-45)

Current Geronimo Provider

This is really JSP debugging support, and is implemented by the JSP provider.  We're currently getting this from Jasper. 

Status of Java EE 6 Activity

Nothing new for Java EE 6 in this area.

Component:  Standard Tag Library for JavaServer Pages (JSTL) 1.2 (JSR-52)

Current Geronimo Spec Versions

None - We use Sun RI (jstl-1.2.jar)

Current Geronimo Provider

Sun RI at the 1.2 level

Status of Java EE 6 Activity

The jstl RI is not provided as a bundle, so Geronimo is using this as a wrappered bundled. 

Component:  JavaServer Faces (JSF) 2.0 (JSR-314)

Current Geronimo Spec Versions

None. We use org.apache.myfaces.core.myfaces-api-2.0.0-SNAPSHOT.jar.

Current Geronimo Provider

MyFaces 2.0.2, which is at a JSF 2.0 level.

Status of Java EE 6 Activity

JSF 2.0 is being worked on by the MyFaces community  A beta version of the 2.0 was made available on February 1, 2010, so this activity is well along.

Component:  Common Annotations for Java Platform 1.1 (JSR-250)

Current Geronimo Provider

Geronimo implemented. 

Status of Java EE 6 Activity

A 1.1 version of the annotations is available, but not currently being used within the Geronimo trunk build.

Additional Notes

This is really just a set of annotations classes that can be shared across different Java EE components. 

Component:  Enterprise JavaBeans (EJB) 3.1 Lite (JSR-318)

Current Geronimo Provider

OpenEJB 

Status of Java EE 6 Activity

Like the web profile itself, this appears to describe a minimal feature set, but an implementation can provide more than the minimum, if desired.  This appears fairly easy to meet, once the 3.1 feature set is implemented.  Portions of the 3.1 features have already been implemented in OpenEJB. 

The major EJB 3.1 features yet to be completed in OpenEJB are async interfaces, schedule based timers and the no-interface view. Of the three, only the no-interface view is required for EJB Lite. Several updates are required for changes to the EJB 3.1 spec in the last few months mostly around deployment descriptor, additional annotations, Singleton bean lifecycle tweaks and support of the official javax.ejb.embedded.EJBContainer API based on the existing OpenEJB InitialContext/embedded API. Rough estimate of the time required to complete the no-interface view and updates required for the EJB Lite profile are 2-3 weeks and 4-6 weeks respectively. Rough estimate on async invocations/interfaces is 3-5 weeks and schedule based timer support 4-?. The schedule based timer support is the largest undertaking, based on de facto standards like Cron and Quartz, but different enough that it is not possible to use any existing library as-is. Actual completion dates depend on time spent in other priorities.

A major new Java EE 6/EJB/Servlet feature to be completed in Geronimo is the ability to include EJBs in .war files which required as part of the Java EE 6 Web Profile. Any EJBs in the webapp share the classloader of the webapp and the java:comp/env namespace of the webapp. The Geronimo deployment process will also need to be updated to treat all webapps as potential sources for EJBs to support this feature. Rough estimate is 3-4 weeks of likely both David Blevins' and David Jencks' time.

Additional Notes

The embedded version of OpenEJB is capable of handling a dynamic provisioning of the different subsystems from the Lite profile version up to the full capability (minus the CORBA integration, which is handled by Geronimo).  It appears there will be some work required on the part of Geronimo to create profiles/plugins that will selectively start the GBeans that integrate different portions of the OpenEJB stack with the configuration.  Currently, the Geronimo EJB configuration is an all-or-nothing proposition. 

EJB 3.1 API libraries currently being developed in asf/openejb/trunk/openejb3/api/ejb31-api-experimental/ with plans to move it to asf/geronimo/specs/trunk/geronimo-ejb_3.1_spec once the specification closes. Current close date is slated for some time in September 2009.

Component: Java Transaction API (JTA) 1.1 (JSR-907)

Current Geronimo Provider

Implemented by Geronimo directly. 

Status of Java EE 6 Activity

No revisions required for Java EE 6, 

Component: Java Persistence API (JPA) 2.0 (JSR-317)

Current Geronimo Provider

OpenJPA2.0

Status of Java EE 6 Activity

A beta version of OpenJPA 2.0 should be available in early February 2010.  This OpenJPA2 Geronimo plugins are still using an earlier milestone release and will need some updates to use the most current spec and implementation.

Component: Dependency Injection for Java 1.0 (JSR-330)

Current Geronimo Provider

This is a new JEE 6 component, so there is no current provider.

Status of Java EE 6 Activity

JSR 330 is a proper subset of the JSR 299 spec definition, so no additional provider work is required beyond what is already being done to implement JSR 299 and to provide the spec jar file. 

Component: Contexts and Dependency Injection for Java EE platform 1.0 (JSR-299)

Current Geronimo Provider

This is a new JEE 6 component, so there is no current provider. 

Status of Java EE 6 Activity

The openwebbeans project is working on implementing this component and is already working with the Geronimo and OpenEJB communties to work on the integration issues.  There should be a feature complete beta available in February 2010 and it appears the target is for a TCK complete implementation to be available in April. This item will also require a significant amount of Geronimo integration work once it is available.

Additional Notes

A potential fallback might be to use the RI version, which has an ASL license.  However, there would still be sigificant integration work required for using this alternate version.  The amount has not be investigated yet, but it is assumed to be similar in extent to the openwebbeans effort + the additonal effort required to research how the integration needs to be accomplished.

Component: Bean Validation 1.0 (JSR-303)

Current Geronimo Provider

New component in JEE6, so there is no existing component.

Status of Java EE 6 Activity

There have been numerous discussions about creating an Apache project for implementing a Bean Validation component, but none of these proposals have managed to get off the ground as yet. Currently, using the reference implementation (which carries an ASL2 license) is looking like the most viable alternative.

Component: Interceptor 1.1 (JSR-318)

Current Geronimo Provider

OpenEJB 31.

Status of Java EE 6 Activity

This work effort is completely contained within the OpenEJB project.

Component: JCA 1.6 (JSR 322)

Current Geronimo Provider

Geronimo Implementation

Status of Java EE 6 Activity

The spec and implementation effort for this item appears complete.

Component: JACC 1.4 (JSR 115)

Current Geronimo Provider

Geronimo Implementation

Status of Java EE 6 Activity

The spec and implementation effort for this item appears complete.

Component: JASPIC 1.0 (JSR 196)

Current Geronimo Provider

Geronimo Implementation

Status of Java EE 6 Activity

The spec and implementation effort for this item appears complete.

Component: Web Services for Java EE 1.3-MR2 (JSR 115)

Current Geronimo Provider

Geronimo Implementation

Status of Java EE 6 Activity

Work has not started yet on this item, but this does not appear to be a large update.

Component: JAX-WS 2.2

Current Geronimo Provider

Currently using both Axis2 and CXF for the JAX-WS implementation.

Status of Java EE 6 Activity

Axis2 is not targeted for completion until October, 2010.
CXF does not currently have a plan in place for delivering JAX-WS-2.2 because of issues with dealing with endorsed dir requirements.

Component: JAX-RS 1.1 (JSR 311)

Current Geronimo Provider

New for Java EE 6. We can chose between Wink and CXF as a JAX-RS provider.

Status of Java EE 6 Activity

The Wink implementation is complete and passes the JAX-RS TCK. CXF has not shipped a release with its JAX-RS stack yet, but it is under active development.