TOTD #158: Java EE 7 JSRs: JPA 2.1, JAX-RS 2.0, Servlets 3.1, EL 3.0, JMS 2.0, JSF 2.2, CDI 1.1, Bean Validation 1.1

Java EE 6 specifications were approved on Dec 1st 2009 and the corresponding binaries and TCK were released on Dec 10th 2009. Oracle GlassFish Server 3.1 added Clustering and High Availability capabilities to Java EE 6 applications, and many other features, and was released on Feb 28th 2011. Now the wheels are chugging along and several Java EE 7 JSRs have been filed. This Tip Of The Day (TOTD) provides a summary of propopsed features in each of the JSR (make sure to read the proposed JSR for the complete list) ...

Java EE 7 (JSR 342)

  • The main theme is to easily run applications on private or public clouds
  • Application metadata descriptor to describe PaaS execution environment such as multi-tenancy, resources sharing, quality-of-service, and dependencies between applications
  • Embrace latest standards like WebSocket, HTML5, JSON and have a standards-based API for each one of them
  • Remove inconsistencies between Managed Beans, EJB, Servlets, JSF, CDI, and JAX-RS
  • Inclusion of JAX-RS 2.0 in Web Profile
  • Technology Refresh for several existing technologies (more on this below) and possible inclusion of Concurrency Utilities for Java EE (JSR 236) and JCache (JSR 107)
  • Spec leads: Roberto Chinnici, Bill Shannon (Oracle)

JPA 2.1 (JSR 338)

  • Multi-tenancy
  • Support for stored procedures and vendor function
  • Update and Delete Critieria queries, JPQL <-> Critieria mapping
  • Support for schema generation
  • Persistence Context synchronization
  • Dynamic definition of PU
  • Additional event listeners
  • Approved by the JCP EC, watch the progress at, spec lead: Linda DeMichiel (Oracle)

JAX-RS 2.0 (JSR 339)

  • Client API - low level using builder pattern and a higher level on top of that
  • Hypermedia
  • MVC Pattern - Resource controller and pluggable viewing technology
  • Form or Query parameter validation using Bean Validation
  • Closer integration with @Inject, etc
  • Server-side asynchronous request processing
  • Server-side content negotiation
  • Approved by the JCP EC, watch progress at, spec leads: Roberto Chinnici, Marek Potociar (Oracle)

Servlets 3.1 (JSR 340)

  • Multi tenancy for security, session, resources, etc.
  • Asynchronous IO based on NIO2
  • Simplfiied asynchronous Servlets
  • Utilize Java EE concurrency utilities
  • Enable support for WebSockets
  • Spec leads: Shing Wai Chan, Rajiv Mordani (Oracle)

Expression Language 3.0 (JSR 341)

  • Separate ELContext into parsing and evaluation contexts
  • Customizable EL coercion rules
  • Reference static methods and members directly in EL expressions
  • Adding operators like equality, string concatenation, and sizeof etc.
  • Integration with CDI such as generating events before/during/after the expressions are evaluated
  • Spec lead: Kin-man Chung (Oracle)

Java Message Server 2.0 (JSR 343)

  • Ease of development
  • Remove/Clarify ambiguities in the existing specification
  • Integration with CDI
  • Clarification of the relationship between JMS and other Java EE specs
  • A new mandatory API to allow any JMS provider to be integrated with any Java EE container
  • Spec lead: Nigel Deakin (Oracle)

Java Server Faces 2.2 (JSR 344)

  • Ease of Development - make cc:interface in composite components optional, shorthand URLs for Facelet tag libraries, integration with CDI
  • Support implementation of Portlet Bridge 2.0 (JSR 329)
  • Support for HTML5 features, Flow management, Listener for page navigation events, and new components like FileUpload and BackButton
  • Spec lead: Ed Burns (Oracle)

CDI 1.1 (details - JSR TBD)

  • Global ordering of interceptors and decorators
  • API for managing built-in contexts
  • Embedded mode to startup outside Java EE container
  • Injection for static members such as loggers
  • Send Servlet events as CDI event
  • Spec lead: Pete Muir (RedHat)

Bean Validation 1.1 (details - JSR TBD)

  • Integration with other specs
    • JAX-RS: Validate parameters on HTTP calls
    • JAXB: Convert into XML schema descriptor
    • JPA: DDL Generation
  • Method level validation
  • Apply constrains on group collection
  • Spec lead: Emmanuel Bernard (RedHat)

JPA 2.1 and JAX-RS 2.0 are already approved by the JCP Executive Committee and others are going through a review ballot. And then the EG needs to be formed, specifications and implementations delivered so its a long road ahead. But hey, this group has delivered every time in the past and we'll do it again :-) And this time all the JSRs are run more transparently and some of the highlights on that front are:

  • Names of the EG members are publicly visible
  • EG business reported on publicly readable alias
  • Schedule is public, current and updated regularly
  • Public can read/write to a wiki to discuss the status so far
  • Discussion board on
  • Public read-only issue tracker

Here is a latest slide deck I delivered at OTN Developer Day Boston last week giving a good mix of Java EE 6 and providing an insight into the future:

I expect this slide deck to stay current and add more details as they become available, so stay tuned ...

Technorati: totd javaee6 javaee7 glassfish jcp jsr


if i remember right, cdi spec lead is Gavin King,(as labeled star spec lead lately)?

Posted by ethan on March 08, 2011 at 07:21 PM PST #

I think the JavaEE 7 spec don't have any revolution change, it just improves a littile based on the JavaEE 6

Posted by zk on March 08, 2011 at 09:28 PM PST #


Pete Muir is listed as the spec lead for CDI 1.1. Gavin is apparently working on a secret project for past few months :-)


Java EE 7 is about evolution and adopting your programming paradigms to fit with cloud paradigm.

Posted by Arun Gupta on March 08, 2011 at 10:53 PM PST #

What specification does EJB fall under? What would really complement all of the above is the ability annotate pojos with same annotations that we annotate EJBs with today (ie. Transactions etc). In the world of CDI, do we still need EJBs?

Also, can we somehow trim down the verbosity of the JPA criteria API?

+1 for the flow management in JSF.

Posted by sboulay on March 09, 2011 at 08:54 AM PST #

Thanks from that good explanation. I found another article about that:

Posted by Daniel on March 13, 2011 at 06:12 AM PDT #

Post a Comment:
Comments are closed for this entry.

profile image
Arun Gupta is a technology enthusiast, a passionate runner, author, and a community guy who works for Oracle Corp.

Java EE 7 Samples

Stay Connected


« July 2016