I've been starting to look at what might be required to implement the JEE6 Web Profile stack on Geronimo. The Web Profile is a fairly small subset of the JEE6 definition oriented around writing web applications. This profile defines the minimal set of services the server must provide to be compliant, but additional services can also be available on the server without harming compliance levels. In fact, it appears that you can be compliant just by implementing the full JEE stack, but that somewhat defeats the purpose of allowing smaller service environments to be created.
The required components in the Web Profile are:

   * Servlet 3.0
   * JavaServer Pages (JSP) 2.2
   * ExpressionLanguage (EL) 2.2
   * Debugging Support for Other Languages (JSR-45) 1.0
   * Standard Tag Library for JavaServer Pages (JSTL) 1.2
   * JavaServer Faces (JSF) 2.0
   * Common Annotations for Java Platform (JSR-250) 1.1
   * Enterprise JavaBeans (EJB) 3.1 Lite
   * Java Transaction API (JTA) 1.1
* Java Persistence API (JPA) 2.0 Some of these components are at the same level that Geronimo currently uses, others are the latest levels defined in JEE6. I've taken a first stab at pulling all of this together so we can get a handle on what work we need to do directly (e.g., creating new spec jars for the new API levels) and what components we might need to hunt down from other sources...such as a Servlet 3.0 compliant container. The wiki page for this roadmap can be found here:

http://cwiki.apache.org/confluence/display/GMOxDEV/Road+map+for+JEE6+Web+Profile

This is just a first pass, if you find anything inaccurate or have additional information that can be added for any of these items, please make the updates. The Servlet and JSP-related sections could really use some fleshing out. I'm not sure I quite have a clear picture on how Geronimo consumes the different pieces today in all of the combinations.

I've also created a couple of Jiras for some items that we can start doing now to prepare for the web profile:

1) Create an OpenJPA 2.0 plugin to allow the newer version of OpenJPA to be experimented with (https://issues.apache.org/jira/browse/GERONIMO-4680) 2) Create a plugin group using the existing Geronimo versions of these components. This will allow a non-compliant Web profile server to be created using the JEE5 components that would be an excellent vehicle for playing around with this feature set.

Rick

Reply via email to