Java EE 6 Platform Public Review
It is my pleasure to announce that yesterday we published on the JCP web site the public draft of the Java EE 6 Platform specification. The review will last 30 days, ending on February 23. The email address for feedback hasn't changed: it's javaee-spec-feedback<at>sun.com.
One JSR, Two Specifications
The first surprise when you download the specification is that there are two documents: in addition to the platform specification, we are publishing for the first time the Web Profile specification.
The "meat" of the specification is the list of component technologies, which I'll get to in a second. First, I'd like to draw your attention to chapter WP.1. Since the Web Profile is the first profile in the history of the Java EE platform, we thought of including some background material. In addition to a description of the class of applications that the profile targets, we also included a fairly general discussion on how to determine which requirements are applicable to a given profile. In general, this is not a trivial operation, since there are many sources of requirements and many allowed combinations of technologies. We hope that definers, implementors and users of present and future profiles will all benefit from these clarifications. Before diving into this material, please make sure to read chapter EE.9 of the platform spec, which contains the general rules that all profiles must follow.
After much deliberation, the platform expert group chose to go with a mid-range version of the Web Profile, close to option B in my earlier writeup.
The required technologies are:
Debugging support for other languages (JSR-45) 1.0
EJB 3.1 Lite
You may notice that some of the version numbers don't match the latest published API (e.g. EL 1.2). That's because we plan on making minor changes to the corresponding technology via a maintenance review. I'll be providing more details as they become available.
What about JAX-RS?
JAX-RS is not a required component of the Web Profile. The expert group concluded that it is too early to mandate the inclusion of JAX-RS, given that not every web application out there is going to expose a web API to its users. As the popularity of JAX-RS grows, we may include it in a future version of the Web Profile. In the meantime, JAX-RS will be fully pluggable in all Servlet 3.0 containers, hence in all Web Profile products. And of course JAX-RS is a required component of the full Java EE 6 Platform. (For a a description of the pluggability mechanism, please refer to chapter 8 of the servlet spec. The servlet expert group is still working on some of the details, which will appear in the upcoming proposed final draft.)
What about Web Beans?
Web Beans is not listed as a required component either in the Web Profile or the full platform. On the other hand, it is mentioned in section EE.6.29 as a component under consideration for inclusion. The expert group would like to solicit feedback from the community on this subject.
Observant readers will also have noticed that the Web Beans specification, currently in public draft, was extensively updated just yesterday. Gavin King's blog has all the details of the changes, which were triggered by feedback mostly coming from the JSR-316 expert group. Among the biggest changes, the term "Web Beans" itself has disappeared from the spec. While this may come as a shock to some, it's really a positive development, since it signifies the merging of the functionality that Web Beans provided with the established Java EE concepts of "containers" and "components". I believe that the end result is a more usable, better integrated, easier to learn "Web Beans", now providing contextual support and dependency injection for the whole Java EE platform.
What about Bean Validation (JSR-303)?
Even more observant readers will have noticed that JSR-303 is in public review, yet it is not listed as a Java EE 6 component JSR. This is simply a matter of timing; the platform expert group just started discussing the inclusion of JSR-303, so no decision had been reached at the time the public draft of the platform specification was sent to the (virtual) presses. I should point out that the JSR-303 expert group, lead by Emmanuel Bernard, has done a lot of work to address the needs of JPA and JSF in the area of validation, so I'm confident that JSR-303 will be well received by the community.
What About the Schedule? Aren't You Late?
Yes, we are a little behind schedule, thanks for noticing. As always, we face a trade-off between pushing stuff out aggressively and doing the right thing, in this case aligning the specs better and making sure Web Beans and Bean Validation fit well with the overall model. In my opinion, the choice is a no-brainer, given that developers have to live with a version of the platform for a long time. With the release of the public draft of the platform spec, every JSR scheduled for inclusion in Java EE 6 is now public, so we are getting close to the finishing line.
Please keep the feedback coming and let us know how we can improve your development experience!