geronimo-scm mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From conflue...@apache.org
Subject [CONF] Apache Geronimo Development > Road map for Java EE6 Web Profile
Date Wed, 06 Jan 2010 14:49:00 GMT
<html>
<head>
    <base href="http://cwiki.apache.org/confluence">
            <link rel="stylesheet" href="/confluence/s/1519/1/1/_/styles/combined.css?spaceKey=GMOxDEV&amp;forWysiwyg=true"
type="text/css">
    </head>
<body style="background-color: white" bgcolor="white">
<div id="pageContent">
<div id="notificationFormat">
<div class="wiki-content">
<div class="email">
     <h2><a href="http://cwiki.apache.org/confluence/display/GMOxDEV/Road+map+for+Java+EE6+Web+Profile">Road
map for Java EE6 Web Profile</a></h2>
     <h4>Page <b>edited</b> by             <a href="http://cwiki.apache.org/confluence/display/~rickmcguire">Rick
McGuire</a>
    </h4>
     
          <br/>
     <div class="notificationGreySide">
         <h1><a name="RoadmapforJavaEE6WebProfile-BasicsoftheWebProfile"></a>Basics
of the Web Profile</h1>

<p>The Java EE 6 web profile is a specified minimal configuration targeted for small
footprint servers that support "typical" web applications.&nbsp; The Web profile is a
minimal specification, so an implementation is free to add additional services or allow applications
to provision additional services.&nbsp; The required elements of the web profile are:</p>
<ul>
	<li>Servlet 3.0 (JSR-315)</li>
	<li>JavaServer Pages (JSP) 2.2 (JSR-245)</li>
	<li>Expression Language (EL) 2.2 (JSR-245)</li>
	<li>Debugging Support for Other Languages 1.0 (JSR-45)</li>
	<li>Standard Tag Library for JavaServer Pages (JSTL) 1.2 (JSR-52)</li>
	<li>JavaServer Faces (JSF) 2.0 (JSR-314)</li>
	<li>Common Annotations for Java Platform 1.1 (JSR-250)</li>
	<li>Enterprise JavaBeans (EJB) 3.1 Lite (JSR-318)</li>
	<li>Java Transaction API (JTA) 1.1 (JSR-907)</li>
	<li>Java Persistence API (JPA) 2.0 (JSR-317)</li>
	<li>Dependency Injection for Java 1.0 (JSR-330)</li>
	<li>Contexts and Dependency Injection for Java EE platform 1.0 (JSR-299)</li>
	<li>Bean Validation 1.0 (JSR-303)</li>
	<li>Managed Beans 1.0 (JSR-316)</li>
	<li>Interceptors 1.1 (JSR-318)</li>
</ul>



<p>Details on the current state of each of these is traced below.&nbsp; Geronimo
is already at the current level for some of these components, for others we'll need to located
updated versions.&nbsp; 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.</p>

<p>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.</p>

<p>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.&nbsp;
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.&nbsp;
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.&nbsp;</p>

<h1><a name="RoadmapforJavaEE6WebProfile-ComponentDetails"></a>Component
Details</h1>

<p>The current known state for each of these components in Geronimo is detailed here.&nbsp;
Feel free to update this information as new details emerge.</p>

<h2><a name="RoadmapforJavaEE6WebProfile-Component%3AJavaEE6%26nbsp%3B"></a>Component:
Java EE 6&nbsp;</h2>

<p>Support for new "java:global", "java:app", and "java:module" namespaces will be required
for all profiles of Java EE 6.  Unfortunately, the semantics for adding and referencing names
in these new namespaces is still up in the air and is one of the items holding the spec open.</p>

<h2><a name="RoadmapforJavaEE6WebProfile-Component%3AServlet3.0%28JSR315%29%26nbsp%3B"></a>Component:
Servlet 3.0 (JSR-315)&nbsp;</h2>


<h4><a name="RoadmapforJavaEE6WebProfile-CurrentGeronimoSpecVersions"></a>Current
Geronimo Spec Versions</h4>

<p>Servlet 3.0 - geronimo-servlet_3.0_spec-1.0-EA-SNAPSHOT</p>

<h4><a name="RoadmapforJavaEE6WebProfile-CurrentGeronimoProvider"></a>Current
Geronimo Provider</h4>

<p>The servlet container can be either Tomcat 7 or Jetty 8?&nbsp; The Tomcat artifact
Geronimo uses contains patches applied on top of the Tomcat version.</p>

<p>According to the summary presented here:</p>

<p><a href="http://wiki.apache.org/tomcat/TomcatVersions" rel="nofollow">Tomcat
Releases</a></p>

<p>The Tomcat plan is for a 7.0.x release that supports the Servlet 3.0 specification
to be available as soon as the Servlet 3.0 spec finalizes.&nbsp; This chart has an interesting
note that this will support JSP 2.1 because there is no JSP 2.2.</p>

<p>For Jetty, there is a similar <a href="http://www.eclipse.org/projects/project-plan.php?projectid=rt.jetty"
rel="nofollow">project plan </a> for an 8.0.x version also planned at the time Servlet
3.0 goes final.</p>

<h4><a name="RoadmapforJavaEE6WebProfile-StatusofJavaEE6Activity"></a>Status
of Java EE 6 Activity</h4>

<p>Unknown.&nbsp; In the Tomcat community, this appears to have been discussed,
but is not really under active development.&nbsp; 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.&nbsp;</p>

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

<h4><a name="RoadmapforJavaEE6WebProfile-AdditionalNotes"></a>Additional
Notes</h4>


<h2><a name="RoadmapforJavaEE6WebProfile-Component%3AJavaServerPages2.2%28JSR245%29"></a>Component:
JavaServer Pages 2.2 (JSR-245)</h2>


<h4><a name="RoadmapforJavaEE6WebProfile-CurrentGeronimoSpecVersions"></a>Current
Geronimo Spec Versions</h4>

<p>JSP 2.1 - geronimo-jsp_2.1-MR2_spec-1.0-SNAPSHOT</p>

<h4><a name="RoadmapforJavaEE6WebProfile-CurrentGeronimoProvider"></a>Current
Geronimo Provider</h4>

<p>Geronimo is currently relying on Jasper for the JSP implementation on Tomcat.&nbsp;
I'm not sure I understand what the Jetty story is on this. &nbsp;</p>

<h4><a name="RoadmapforJavaEE6WebProfile-StatusofJavaEE6Activity"></a>Status
of Java EE 6 Activity</h4>

<p>I've not been able to locate many signs of activity on this.&nbsp;</p>

<h4><a name="RoadmapforJavaEE6WebProfile-AdditionalNotes"></a>Additional
Notes</h4>

<p>There's something bizarre going on with this spec and the Expression Language one.&nbsp;
The Tomcat release plan indicates there is no JSP 2.2 version.&nbsp; There don't appear
to be any JSP 2.2 specifications that can be located, and there are no JSRs at the Sun Java
web site related to a JSP 2.2 release.&nbsp; The only references I've managed to find
have been a couple of indicators that Glassfish is supporting JSP 2.2, but there don't appear
to be any details on what this actually is.&nbsp;</p>

<p>New information has emerged on this spec.&nbsp; There is no JSP 2.2 or EL 2.2
specification.&nbsp; This is, however, a maintenance release of the JSR 245 Specification
that contains some minor enhancements to both the JSR 2.1 spec and the EL&nbsp; Information
about the proposed changes can be found <a href="http://jcp.org/aboutJava/communityprocess/maintenance/jsr245/245ChangeLog2.html"
rel="nofollow">here.</a></p>


<h2><a name="RoadmapforJavaEE6WebProfile-Component%3A%26nbsp%3BExpressionLanguage%28EL%292.2%28JSR245%29"></a>Component:&nbsp;
Expression Language (EL) 2.2 (JSR-245)</h2>


<h4><a name="RoadmapforJavaEE6WebProfile-CurrentGeronimoSpecVersions"></a>Current
Geronimo Spec Versions</h4>

<p>EL 1.0 - geronimo-el_1.0_spec-1.0.1<br/>
There don't appear to be any spec changes required for JEE6. </p>

<h4><a name="RoadmapforJavaEE6WebProfile-CurrentGeronimoProvider"></a>Current
Geronimo Provider</h4>

<p>This is provided by the JSP provider, so they're fairly tightly coupled.&nbsp;&nbsp;</p>

<h4><a name="RoadmapforJavaEE6WebProfile-StatusofJavaEE6Activity"></a>Status
of Java EE 6 Activity</h4>

<p>This tends to be tightly coupled with the JSP providers, do it's difficult to say
what the story is.</p>

<h4><a name="RoadmapforJavaEE6WebProfile-AdditionalNotes"></a>Additional
Notes</h4>

<p>The spec version appears to be a bit of a muddle.&nbsp; The spec jar is getting
built claiming it is 1.0, but the latest version defined in the Web Profile appears to be
in lock-step with the JSP version numbers.&nbsp; It's not clear what version we are actually
at currently, but it is possible that there have not been any API changes in this area since
the 1.0 version.&nbsp;</p>

<p>It appears that the Web Profile specification has an error in the version number.&nbsp;
There is no Expression Language 2.2 specification.&nbsp; However, the <a href="http://jcp.org/aboutJava/communityprocess/maintenance/jsr245/245ChangeLog2.html"
rel="nofollow">JSR 245 Maintenance Release</a> includes some minor updates to the
EL specification.&nbsp; These updates are not broken out into a separate spec, but are
included under the umbrella of the updated JSP 2.1 spec.</p>


<h2><a name="RoadmapforJavaEE6WebProfile-Component%3A%26nbsp%3BDebuggingSupportforOtherLanguages1.0%28JSR45%29"></a>Component:&nbsp;
Debugging Support for Other Languages 1.0 (JSR-45)</h2>


<h4><a name="RoadmapforJavaEE6WebProfile-CurrentGeronimoSpecVersions"></a>Current
Geronimo Spec Versions</h4>

<p>No spec apis needed. </p>

<h4><a name="RoadmapforJavaEE6WebProfile-CurrentGeronimoProvider"></a>Current
Geronimo Provider</h4>

<p>This is really JSP debugging support, and is implemented by the JSP provider.&nbsp;
We're currently getting this from Jasper.&nbsp;</p>

<h4><a name="RoadmapforJavaEE6WebProfile-StatusofJavaEE6Activity"></a>Status
of Java EE 6 Activity</h4>

<p>Nothing new for Java EE 6 in this area.</p>

<h4><a name="RoadmapforJavaEE6WebProfile-AdditionalNotes"></a>Additional
Notes</h4>


<h2><a name="RoadmapforJavaEE6WebProfile-Component%3A%26nbsp%3BStandardTagLibraryforJavaServerPages%28JSTL%291.2%28JSR52%29"></a>Component:&nbsp;
Standard Tag Library for JavaServer Pages (JSTL) 1.2 (JSR-52)</h2>



<h4><a name="RoadmapforJavaEE6WebProfile-CurrentGeronimoSpecVersions"></a>Current
Geronimo Spec Versions</h4>

<p>None - We use Sun RI</p>

<h4><a name="RoadmapforJavaEE6WebProfile-CurrentGeronimoProvider"></a>Current
Geronimo Provider</h4>

<p>Sun RI, but there was a patch contributed by IBM to the JSP team to upgrade the ASF
JSP 1.1.2 to the 1.2 level.  Not sure what the latest status is...</p>

<h4><a name="RoadmapforJavaEE6WebProfile-StatusofJavaEE6Activity"></a>Status
of Java EE 6 Activity</h4>

<p>?????</p>

<h4><a name="RoadmapforJavaEE6WebProfile-AdditionalNotes"></a>Additional
Notes</h4>


<h2><a name="RoadmapforJavaEE6WebProfile-Component%3A%26nbsp%3BJavaServerFaces%28JSF%292.0%28JSR314%29"></a>Component:&nbsp;
JavaServer Faces (JSF) 2.0 (JSR-314)</h2>



<h4><a name="RoadmapforJavaEE6WebProfile-CurrentGeronimoSpecVersions"></a>Current
Geronimo Spec Versions</h4>

<p>None.  We use org.apache.myfaces.core.myfaces-api-1.2.6.jar.</p>

<h4><a name="RoadmapforJavaEE6WebProfile-CurrentGeronimoProvider"></a>Current
Geronimo Provider</h4>

<p>MyFaces 1.2.6, which is at a JSF 1.2 level.</p>

<p>JSF 2.0 is being worked on by the MyFaces community. An initial 2.0.0-alpha release
is available - <a href="http://myfaces.apache.org/download.html" rel="nofollow">http://myfaces.apache.org/download.html</a></p>

<h4><a name="RoadmapforJavaEE6WebProfile-StatusofJavaEE6Activity"></a>Status
of Java EE 6 Activity</h4>

<p>There is an active MyFaces 2.0 project, though I've not been able to find much status
about where this is in implementation.&nbsp;</p>

<h4><a name="RoadmapforJavaEE6WebProfile-AdditionalNotes"></a>Additional
Notes</h4>


<h2><a name="RoadmapforJavaEE6WebProfile-Component%3A%26nbsp%3BCommonAnnotationsforJavaPlatform1.1%28JSR250%29"></a>Component:&nbsp;
Common Annotations for Java Platform 1.1 (JSR-250)</h2>


<h4><a name="RoadmapforJavaEE6WebProfile-CurrentGeronimoSpecVersions"></a>Current
Geronimo Spec Versions</h4>

<p>geronimo-annotation_1.0_spec-1.1.1</p>

<h4><a name="RoadmapforJavaEE6WebProfile-CurrentGeronimoProvider"></a>Current
Geronimo Provider</h4>

<p>Geronimo implemented.&nbsp;</p>

<h4><a name="RoadmapforJavaEE6WebProfile-StatusofJavaEE6Activity"></a>Status
of Java EE 6 Activity</h4>

<p>Not started, but this should be a fairly simple item to complete.&nbsp;</p>

<h4><a name="RoadmapforJavaEE6WebProfile-AdditionalNotes"></a>Additional
Notes</h4>

<p>This is really just a set of annotations classes that can be shared across different
Java EE components.&nbsp;</p>

<h2><a name="RoadmapforJavaEE6WebProfile-Component%3A%26nbsp%3BEnterpriseJavaBeans%28EJB%293.1Lite%28JSR318%29"></a>Component:&nbsp;
Enterprise JavaBeans (EJB) 3.1 Lite (JSR-318)</h2>


<h4><a name="RoadmapforJavaEE6WebProfile-CurrentGeronimoSpecVersions"></a>Current
Geronimo Spec Versions</h4>

<p>geronimo-ejb_3.0_spec-1.0.1</p>

<h4><a name="RoadmapforJavaEE6WebProfile-CurrentGeronimoProvider"></a>Current
Geronimo Provider</h4>

<p>OpenEJB&nbsp;</p>

<h4><a name="RoadmapforJavaEE6WebProfile-StatusofJavaEE6Activity"></a>Status
of Java EE 6 Activity</h4>

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

<p>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.</p>

<p>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.</p>

<h4><a name="RoadmapforJavaEE6WebProfile-AdditionalNotes"></a>Additional
Notes</h4>

<p>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).&nbsp; 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.&nbsp;
Currently, the Geronimo EJB configuration is an all-or-nothing proposition.&nbsp;</p>

<p>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.</p>


<h2><a name="RoadmapforJavaEE6WebProfile-Component%3AJavaTransactionAPI%28JTA%291.1%28JSR907%29"></a>Component:
Java Transaction API (JTA) 1.1 (JSR-907)</h2>



<h4><a name="RoadmapforJavaEE6WebProfile-CurrentGeronimoSpecVersions"></a>Current
Geronimo Spec Versions</h4>

<p>geronimo-jta_1.1_spec-1.1.1</p>

<h4><a name="RoadmapforJavaEE6WebProfile-CurrentGeronimoProvider"></a>Current
Geronimo Provider</h4>

<p>Implemented by Geronimo directly.&nbsp;</p>

<h4><a name="RoadmapforJavaEE6WebProfile-StatusofJavaEE6Activity"></a>Status
of Java EE 6 Activity</h4>

<p>No revisions required for Java EE 6,&nbsp;</p>

<h4><a name="RoadmapforJavaEE6WebProfile-AdditionalNotes"></a>Additional
Notes</h4>


<h2><a name="RoadmapforJavaEE6WebProfile-Component%3AJavaPersistenceAPI%28JPA%292.0%28JSR317%29"></a>Component:
Java Persistence API (JPA) 2.0 (JSR-317)</h2>



<h4><a name="RoadmapforJavaEE6WebProfile-CurrentGeronimoSpecVersions"></a>Current
Geronimo Spec Versions</h4>

<p>geronimo-jpa_3.0_spec-1.1.1&nbsp;</p>

<h4><a name="RoadmapforJavaEE6WebProfile-CurrentGeronimoProvider"></a>Current
Geronimo Provider</h4>

<p>OpenJPA 1.2.1</p>

<h4><a name="RoadmapforJavaEE6WebProfile-StatusofJavaEE6Activity"></a>Status
of Java EE 6 Activity</h4>

<p>The 2.0 version is actively being developed by the OpenJPA community on trunk (2.0.0-SNAPSHOT.)&nbsp;</p>

<h4><a name="RoadmapforJavaEE6WebProfile-AdditionalNotes"></a>Additional
Notes</h4>

<p>JPA 2.0 Spec API is being developed in specs/trunk/geronimo-jpa_2.0_spec.&nbsp;
As new public spec drafts are released, we move the existing API to branches to preserve building
OpenJPA Milestone releases.&nbsp; Also, there is a JCP legal restriction that the current
JPA artifacts must be labeled as Early Access and for testing purposes only (see the included
NOTICE file.)</p>

<p>Currently, OpenJPA 2.0.0 Milestone 2 is using the 1.0-EA2-SNAPSHOT branch and includes
most features that were defined in the Spec before the latest PFD dated March 13, 2009.</p>

<h2><a name="RoadmapforJavaEE6WebProfile-Component%3ADependencyInjectionforJava1.0%28JSR330%29"></a>Component:
Dependency Injection for Java 1.0 (JSR-330)</h2>

<h4><a name="RoadmapforJavaEE6WebProfile-CurrentGeronimoSpecVersions"></a>Current
Geronimo Spec Versions</h4>

<h4><a name="RoadmapforJavaEE6WebProfile-CurrentGeronimoProvider"></a>Current
Geronimo Provider</h4>

<h4><a name="RoadmapforJavaEE6WebProfile-StatusofJavaEE6Activity"></a>Status
of Java EE 6 Activity</h4>

<h4><a name="RoadmapforJavaEE6WebProfile-AdditionalNotes"></a>Additional
Notes</h4>


<h2><a name="RoadmapforJavaEE6WebProfile-Component%3AContextsandDependencyInjectionforJavaEEplatform1.0%28JSR299%29"></a>Component:
Contexts and Dependency Injection for Java EE platform 1.0 (JSR-299)</h2>

<h4><a name="RoadmapforJavaEE6WebProfile-CurrentGeronimoSpecVersions"></a>Current
Geronimo Spec Versions</h4>

<h4><a name="RoadmapforJavaEE6WebProfile-CurrentGeronimoProvider"></a>Current
Geronimo Provider</h4>

<h4><a name="RoadmapforJavaEE6WebProfile-StatusofJavaEE6Activity"></a>Status
of Java EE 6 Activity</h4>

<h4><a name="RoadmapforJavaEE6WebProfile-AdditionalNotes"></a>Additional
Notes</h4>

<h2><a name="RoadmapforJavaEE6WebProfile-Component%3ABeanValidation1.0%28JSR303%29"></a>Component:
Bean Validation 1.0 (JSR-303)</h2>

<h4><a name="RoadmapforJavaEE6WebProfile-CurrentGeronimoSpecVersions"></a>Current
Geronimo Spec Versions</h4>

<h4><a name="RoadmapforJavaEE6WebProfile-CurrentGeronimoProvider"></a>Current
Geronimo Provider</h4>

<h4><a name="RoadmapforJavaEE6WebProfile-StatusofJavaEE6Activity"></a>Status
of Java EE 6 Activity</h4>

<h4><a name="RoadmapforJavaEE6WebProfile-AdditionalNotes"></a>Additional
Notes</h4>

<h2><a name="RoadmapforJavaEE6WebProfile-Component%3AInterceptor1.1%28JSR318%29"></a>Component:
Interceptor 1.1 (JSR-318)</h2>

<h4><a name="RoadmapforJavaEE6WebProfile-CurrentGeronimoSpecVersions"></a>Current
Geronimo Spec Versions</h4>

<h4><a name="RoadmapforJavaEE6WebProfile-CurrentGeronimoProvider"></a>Current
Geronimo Provider</h4>

<h4><a name="RoadmapforJavaEE6WebProfile-StatusofJavaEE6Activity"></a>Status
of Java EE 6 Activity</h4>

<h4><a name="RoadmapforJavaEE6WebProfile-AdditionalNotes"></a>Additional
Notes</h4>


<p><br clear="all" /></p>
     </div>
     <div id="commentsSection" class="wiki-content pageSection">
       <div style="float: right;">
            <a href="http://cwiki.apache.org/confluence/users/viewnotifications.action"
class="grey">Change Notification Preferences</a>
       </div>

       <a href="http://cwiki.apache.org/confluence/display/GMOxDEV/Road+map+for+Java+EE6+Web+Profile">View
Online</a>
       |
       <a href="http://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=119551&revisedVersion=24&originalVersion=23">View
Change</a>
              |
       <a href="http://cwiki.apache.org/confluence/display/GMOxDEV/Road+map+for+Java+EE6+Web+Profile?showComments=true&amp;showCommentArea=true#addcomment">Add
Comment</a>
            </div>
</div>
</div>
</div>
</div>
</body>
</html>

Mime
View raw message