Java EE 7 progress page

On this page I will try to keep track about resources related to Java EE 7. Initially details were a little scarce, but lately news has been pouring in at almost a weekly basis. The initial release estimate for Java EE 7 was Q3 2012, but as usual (see Java EE 5 and Java EE 6 plans and actual release) this has been delayed to Q2 2013.

Java EE 7 overal

Main JSR: http://jcp.org/en/jsr/detail?id=342
Public project home: http://java.net/projects/javaee-spec
Blogs: The Aquarium Java EE 7

Articles:
2010/07 What new features you’d like to see in Java EE 7? (at bottom of page)
2010/09 Java EE.next (at bottom of page)
2010/09 Java EE.next – the cloud? Exalogic? Some thoughts. And fears.
2010/11 The Future Roadmap of Java EE[7]
2010/12 It’s time to start talking about Java EE 7
2011/02 Java EE 7 – I have a (few) dream(s)
2011/04 Red Hat lays out plans for Java EE 7
2011/05 A Look Ahead (middle of page)
2011/06 And what about configuration in Java EE 7?
2011/06 Java EE 7 Looks to the Cloud
2011/07 Java EE 7: Key features, Specifications, Projects, Mailing List Archives, …
2012/03 Java EE 7: the Voyage of the Cloud Treader
2012/05 The Java EE 7 Feature List: Cloud Focused Upgrades
2012/05 Java EE 7: Developing for the Cloud at Geecon 2012

JSF 2.2

Main JSR: http://jcp.org/en/jsr/detail?id=344 (early Draft available)
Public project home: http://java.net/projects/jsf-spec

JSF is the default web layer technology in Java EE. The web framework space in Java is rather fragmented, but JSF is one of most frequently used ones. In a way, JSF can be seen as a foundational technology upon which a very vibrant community is able to build exciting new solutions.

Note that between Java EE 6 and Java EE 7, an intermediate maintenance release JSF 2.1 has been released.

One of the highlights of JSF 2.2 is a continued effort to make building custom components even easier, a trend which was started in JSF 2.0. Java based custom components will be useable in Facelets without declaring a tag in an XML file, and composite components will be simplified a little by making the cc:interface optional. JSF 2.2 will also focus on HTML 5 support and will see some new components being added to the standard component library.

2009/02 Proposed enhancements to JSF 2.1
2010/05 JSF 2.1 Change Log
2010/08 RichFaces JSF 2.2 Proposed Enhancements and Issues
2010/10 Change Log for JSR-000314 JavaServer Faces 2
2010/12 JSF 2.1 & Mojarra new home, Hudson job and more
2011/02 Pre JCP-filed draft of JSF 2.2 JSR Available
2011/04 JSF 2.2 Expert Group’s new member Jakob Korherr
2011/05 HTML5 will be supported in JSF 2.2
2011/06 Ultra quick JSF 2.2 in progress changelog
2011/11 JSF 2.2 recent progress – Early Draft
2012/01 JSF 2.x Update from Ed Burns

Expression Language 3.0

Main JSR: http://jcp.org/en/jsr/detail?id=341
Public project home: http://java.net/projects/el-spec

The expression language (EL) in Java EE is a dynamic ‘mini-language’ mainly used to realize bindings to bean properties or methods (as such it’s a kind of function pointer). It can be easily used in JSP, JSF and CDI, but outside those specs it’s notorious difficult to set up.

Expression Language 3.0 will focus on making the technology easier to use everywhere, including Java SE. Other features being investigated are an easier way to define EL functions, and to add concatenation and sizeof operations. Specifically interesting is the research into supporting lambda functions and LINQ-like query operators in EL.

2011/10 Lambda Expression in EL
2011/10 EL Query Operators on Collections

Servlet 3.1

The main underlying technology of the servlet container (the web part of Java EE) is of course the servlet API itself. This technology is foundational to both JSP and JSF. Previously moving at a relative slow pace (there were only very minor changes between Servlet 2.4 and the current Servlet 2.5), there were some major additions for Servlet 3.0. With Servlet 3.1 the spec is keeping up the pace.

Central for this release are cloud support (an overarching theme of Java EE 7) and a consolidation of the asynchronous support that was introduced with Servlet 3.0.

Main JSR: http://jcp.org/en/jsr/detail?id=340
Public project home: http://java.net/projects/servlet-spec

2011/10 Java Webtier Optimized for the Cloud
2011/12 JavaOne Servlet 3.1 presentation

JPA 2.1

JPA, Java Persistence Architecture, is the default ORM implementation in Java. Basically it allows a developer to specify a simple mapping with annotations or in XML from an Object to a relational data base table. JPA is based on existing ORM solutions like Oracle’s Toplink and Hibernate. Although originally part of EJB3, JPA has always been applicable to the entire Java platform, including Java SE.

Main JSR: http://jcp.org/en/jsr/detail?id=338 (review ballot approved)
Public project home: http://java.net/projects/jpa-spec

2010/03 JPA.next – Thinking about the Future
2011/01 New JSR Proposed: JPA 2.1
2012/01 JPA 2.1 Early Draft Explained – Java EE 7 making progress
2012/01 Sneak peak at Java EE 7 – Multitenant Examples with EclipseLink (JPA 2.1)

CDI 1.1

New kid on the block CDI, Contexts and Dependency Injection, is a modern bean component model that was originally designed to unify the JSF and EJB programming models. With it, EJB beans can be used directly from JSF via EL and stateful EJB beans can be given scopes. It offers more powerful and flexible injection than either JSF Managed Beans or EJB beans do. Although CDI, JSF and EJB already all build on a common but very abstract concept called the managed bean, it seems that JSF Managed Beans might be dropped in favor of CDI and EJB might be retrofitted as a set of CDI services.

CDI could potentially become one of the most important and characteristic elements of Java EE.

Main JSR: http://jcp.org/en/jsr/detail?id=346
Public project home: https://github.com/jboss/cdi/wiki

2012/01 Weld 2.0.0.Alpha1 released!

EJB 3.2

EJBs are the dedicated type of beans to implement the business logic of an application in Java EE. An important property of these beans are the declarative transactions which default to a convenient “start or join existing”. They once had a bad name for being heavyweight, but ever since EJB3 (2006) they follow a very lightweight programming model. EJB 3.1 continued this trend by removing the requirement to implement a business interface and allowing those beans to be defined everywhere instead of in a dedicated EJB module.

Details around EJB 3.2 are preliminary, but strong focus points are making EJB suitable for operation in the cloud (PaaS), further simplifying the model via some additional annotations and refactoring out some of the functionality that EJBs offer like declarative transactions for usage by other platform components.

Main JSR: http://www.jcp.org/en/jsr/detail?id=345
Public project home: http://java.net/projects/ejb-spec

2011/04 EJB 3.2 can start!
2011/06 EJB 3.2 Expert group mailing list starts
2011/10 JavaOne 2011 Round-Up Reza Rahman mentions lack of progress in EJB 3.2 EG

JAX-RS 2.0

Main JSR: http://jcp.org/en/jsr/detail?id=339
Public project home: http://java.net/projects/jax-rs-spec

Articles:
2010/11 JSR311: Draft of the JAX-RS 2.0 JSR (mailing list discussion)
2011/07 JAX-RS 2.0: A first interim report
2011/10 JAX-RS 2.0 – Client API
2011/10 JAX-RS 2.0 Client API: Generic Interface
2012/02 JAX-RS 2.0 Early Draft Explained

Bean Validation 1.1
Public project home: http://beanvalidation.org

2011/03 JSR – Bean Validation 1.1: what to put in?
2011/07 Bean Validation 1.1 has started: join us
2012/03 Proposal for method validation added
2012/03 Bean Validation 1.1 early draft 1 is out – time for feedback

JMS 2.0

JMS represents the default messaging technology in Java EE. Although still a very powerful API, the previous version was clearly starting to show its age not having been updated for almost a decade. For Java EE 7, the API will finally see the long overdue overhaul.

Among the things being considered are a simplification of the API by taking advantage of injection annotations (CDI) as opposed to the current somewhat arcane {connection/session/producer/consumer}-based API. Furthermore, the JMS spec will finally take steps to specify how to communicate with remote servers from different vendors (something that seems pretty basic for a messaging protocol, but something that isn’t specified in the current version).

Main JSR: http://jcp.org/en/jsr/detail?id=343
Public project home: http://java.net/projects/jms-spec

2011/10 JSR 343: What’s Coming in Java Message Service 2.0
2011/11 What’s (probably) coming in Java Message Service 2.0
2011/12 JMS 2.0: A simplified API Version 1
2012/02 JMS 2.0 Early Draft
2012/03 JSR 343: JMS 2.0 – the next version of the JMS Specification
2012/04 JMS 2.0 Early Draft – Simplified API Sample Code

JCache

Main JSR: http://jcp.org/en/jsr/detail?id=107
Public project home: https://github.com/jsr107

After being inactive for years it seems JCache, the universal caching API for Java EE, is being reactivated again for Java EE 7.

2011/03 News on JSR107 (JCACHE) and JSR342 (Java EE 7)
2011/04 JSR107 (Java Caching API) Update – Lots Happening
2011/04 The backlash against the data grid JSR and JCP reform
2011/08 JSR-107, JCache: Alive and Going to be Part of Java EE 7
2011/10 javax.cache: The new Java Caching Standard
2012/01 Greg Luck and the return of JSR 107

Arjan Tijms

best counter