It took us a little less than three years to get the next Java EE version out the door. On April 16th this year the JCP EC voted on JSR 342 and approved it. This is kind of a success story because the initial idea of having a cloud ready platform was withdrawn at the very last possible moment in late August last year. As a member of the EG it is more or less easy to write about upcoming features. Even if the umbrella EG only is responsible for the platform level stuff and not the individual contained JSRs you need to know a little more about the details than I expected at first. But I'm not going to recap what has already been written by Arun or the Adopt-a-JSR members. Instead I would like to give you some more behind the scenes and impressions. First of all: A hearty "Thank-You!" to all the hard working EGs and contributors of the individual JSRs! It was a pleasure contributing as an individual and I am thankful for the patience and respect I received for my views and ideas!
What started back in 1998 has been a tremendous success. The Java Enterprise Edition as we know it today started out with less than 10 individual specifications and grew over time to what it is today. Different topics started to form the versions with the beginning of what was called J2EE 1.4 in 2003.
A more developer centered view came up with the re-branding towards Java EE (and yes: There is nothing named JEE! Never use that name! Please! :) ) This was extended in the overly successful sixth version. Following that path for me it seemed as if the "cloud" topic initially proposed for 7 came out of nowhere. Reading Linda's email about the possible re-alignment was kind of a relief and the only thing I have to add is, that it probably came to late. The cloud things will come up again in the next version which will start somewhere in the future hopefully.
What I would Wish for
My personal wish would be to have a better and longer strategy here. Knowing that we are talking about comparably long time-frames this might stay a wish but instead of adopting latest industry trends all over and leaving it up to the individual JSRs to fill the buzz words, I would rather like to see a more platform centered approach. Given the different categories in which each of the new EE versions emerges this could look like this:
With a maximum of 25% fore each of them it would be a reasonable way to fulfill the needs for every stakeholder. 75% for standards related work to keep the platform integrated, usable and up to date and only 25% of the work to slightly adopt to new things. To me it feels like this approach would invert the way it is done today. But someone with more insight might proof me wrong here.
Further on I would suggest, that the "Big Tickets" need some kind of a visionary road-map, too. Lets say it might be related to Gartners Emerging Technologies Hype Cycle.
|Gartners Emerging Technologies Hype Cyle (Source: Forbes.com)|
So my personal road-map for EE's next big ticket topics would be the following:
Transparency and Community Contribution and Work in the EG
Even if I am complaining about the lack of transparency behind the overall planning I have to note that overall transparency and community contribution raised to a new level in EE 7. Starting with the official survey which Linda launched at the EE-BOF at JavaOne last year on to the upgraded JCP version (JCP 2.8) which is in use for most of the EE JSRs and the incredible amount of people working in the Adopt-A-JSR program this has been the most open EE specification effort of all time. And for those willing to contribute further I suggest that you get familiar with the Adopt-a-JSR program and start contributing. This is a great way to give feedback to the individual EGs. You're of course free to pick whatever specification you want and contribute on the user-mailing-lists. They are open and the EGs monitor what is happening there. Further on, most of the EG members are publicly reachable and happy to receive feedback.
Generally I am pleased to say that working in the EE 7 Expert Group was a pleasant experience. I am incredibly honored to have the chance to work with the brightest EE minds in the industry. This includes Bill and Pete and many others. Especially those who won this year's Star Spec Lead award are the ones I recall being open and responsive to any single question I had. Thank you.
Java Enterprise Edition 7 at a Glance
Enough of behind the scenes and crazy ideas. Here is what EE 7 looks like as of today:
With four new specifications on board and four pruned ones (EJB Entity Beans, JAX-RPC 1.1, JAXR 1.0, und JSR-88 1.2) we're exactly where we've been in EE 6 according to the numbers. The complete specification now contains 34 individual specifications.
|Java Platform, Enterprise Edition||342||7||javaee-spec|
|Java EE Web Profile (Web Profile)||342||1.0|
|Java API for RESTful Web Services (JAX-RS)||339||2.0||jax-rs-spec|
|Web Services for Java EE||109||1.4|
|Java API for XML-Based Web Services (JAX-WS)||224||2.2||jax-ws|
|Java Architecture for XML Binding (JAXB)||222||2.2||jaxb|
|Web Services Metadata for the Java Platform||181||2.1|
|Java API for XML-Based RPC (JAX-RPC) (Optional)||101||1.1||jax-rpc|
|Java API for XML Registries (JAXR) (Optional)||93||1.0|
|JavaServer Pages (JSP)||245||2.3|
|JavaServer Pages Expression Language (EL)||341||3.0||el-spec|
|A Standard Tag Library for JavaServer Pages (JSTL)||52||1.2||jstl|
|Debugging Support for Other Languages||45||1.0|
|Contexts and Dependency Injection for the Java EE Platform (CDI)||346||1.1||github.com|
|Dependency Injection for Java (DI)||330||1.0|
|Enterprise JavaBeans (EJB)||345||3.2||ejb-spec|
|Java EE Connector Architecture (JCA)||322||1.7|
|Java Persistence (JPA)||338||2.1||jpa-spec|
|Common Annotations for the Java Platform||250||1.2|
|Java Message Service API (JMS)||343||2.0|
|Java Transaction API (JTA)||907||1.2||jta-spec|
|Java Authentication Service Provider Interface for Containers (JASPIC)||196||1.1||jaspic-spec|
|Java Authorization Contract for Containers (JACC)||115||1.5||jacc-spec|
|Java EE Application Deployment (Optional)||88||1.2|
|Java Database Connectivity (JDBC)||221||4.0|
|Java Management Extensions (JMX)||255||2.0||openjdk|
|JavaBeans Activation Framework (JAF)||925||1.1|
|Streaming API for XML (StAX)||173||1.0||sjsxp|
|Java Authentication and Authorization Service (JAAS)||1.0|
|Batch Applications for the Java Platform||352||1.0||jbatch|
|Java API for JSON Processing||353||1.0||json-processing-spec|
|Java API for WebSocket||356||1.0||websocket-spec|
|Concurrency Utilities for Java EE||236||1.0||concurrency-ee-spec|
Free Online Launch Event for Java EE 7
If you're interested in first hand information about all the new specs register for the Java EE 7 Launch Webcast: Jun 12th.
The introduction of Java EE 7 is a free online event where you can connect with Java users from all over the world as you learn about the power and capabilities of Java EE 7. Join Oracle for presentations from technical leaders and Java users from both large and small enterprises, deep dives into the new JSRs, and scheduled chats with Java experts.
- Business Keynote (Hasan Rizvi and Cameron Purdy)
- Technical Keynote (Linda DeMichiel)
- Breakout Sessions on different JSRs by specification leads
- Live Chat
- Lots of Demos
- Community, Partner, and Customer video testimonials