Java EE 7: Key features, Specifications, Projects, Mailing List Archives, ...

An update and summary of the key features of different specifications in the Java EE 7 platform ...

Java EE 7 (JSR 342)
  • The main theme is to easily run applications on private or public clouds
  • The platform will define 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 HTML5, WebSocket, JSON and have a standards-based API for each one of them
  • Remove inconsistencies between Managed Beans, EJB, Servlets, JSF, CDI, and JAX-RS
  • Possible inclusion of JAX-RS 2.0 in the Web Profile, revised JMS 2.0 API
  • 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)
  • Status

JPA 2.1 (JSR 338)

  • Support for multi-tenancy
  • Support for stored procedures and vendor function
  • Update and Delete Critieria queries
  • Support for schema generation
  • Persistence Context synchronization
  • CDI injection into listeners
  • Status

JAX-RS 2.0 (JSR 339)

  • Client API - low level using builder pattern and possibly a higher level on top of that
  • Hypermedia - easily create and process links associated with resources
  • Form or Query parameter validation using Bean Validation
  • Closer integration with @Inject, etc
  • Server-side asynchronous request processing
  • Server-side content negotiation using "qs"
  • Status

Servlets 3.1 (JSR 340)

  • Optimize the PaaS model for Web applications
  • Multi tenancy for security, session, resources, etc.
  • Asynchronous IO based on NIO2
  • Simplfiied asynchronous Servlets
  • Utilize Java EE concurrency utilities
  • Enable support for WebSockets
  • Status:

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
  • Status

Java Message Server 2.0 (JSR 343)

  • Ease of development - changes to the JMS programming model to make the application development simpler and easier
  • 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
  • Multi-tenancy and other cloud-related features from the platform
  • Status

Java Server Faces 2.2 (JSR 344)

  • Ease of Development - making configuration options dynamic, make cc:interface in composite components optional, shorthand URLs for Facelet tag libraries, integration with CDI, OSGi support for JSF artifacts
  • Support implementation of Portlet Bridge 2.0 (JSR 329)
  • Support for HTML5 features like HTML5 Forms, Metadata, Heading and Section content model
  • Flow management, Listener for page navigation events, and new components like FileUpload and BackButton
  • Status

EJB 3.2 (JSR 345)

  • Enhancements to the EJB architecture to enable PaaS, such as multi-tenancy
  • Factorization of container-managed transactions to use outside EJB
  • Further use of annotations
  • Alilgnment and integration with other specifications in the platform
  • Status

CDI 1.1 (JSR 346, more details)

  • Global ordering of interceptors and decorators
  • API for managing built-in contexts
  • Embedded mode to allow startup outside Java EE container
  • Declarative control over which packages/beans are scanned in an archive
  • Injection for static members such as loggers
  • Send Servlet events as CDI event
  • Status

Bean Validation 1.1 (JSR 349)

  • Integration with other Java EE specs
    • JAX-RS: Validate parameters and return values on HTTP calls
    • JAXB: Convert constraints into XML schema descriptor
  • Method level validation
  • Apply constraints on group collection
  • Extend the model to support AND and OR style composition
  • Status
JCache (JSR 107)
  • API and semantics for temporary, in-memory caching of Java objects, including object creation, shared access, spooling, invalidation, and consistency across JVMs
  • Package: javax.cache
  • Status
    • Approved by the JCP
    • Spec lead: Yannis Cosmadopoulos, Cameron Purdy (Oracle) and Gregory Luck (Software AG)
    • Project page: jsr107spec
    • Mailing List Archive:

State Management (JSR 350)
  • API that can be used by applications and Java EE containers to offload the responsibility of statement management into third party providers with different QoS characteristics
  • Java SE-based callers can access the state data by querying the state providers
  • Providers with different QoS can be added and API callers can query to meet their criteria
  • Package: javax.state and javax.state.provider
  • Status
Batch Application for the Java Platform (JSR 352)
  • Programming model for batch applications and a runtime for scheduling and executing jobs
  • Defines Batch Job, Batch Job Step, Batch Application, Batch Executor, and Batch Job Manager for the standard programming model
  • Package: javax.batch
  • Status

Concurrency Utilities for Java EE (JSR 236)

  • Provides a clean, simple, independent API by building on JSR 166, making it appropriate for use within any Java EE contianer.
  • Package: javax.util.concurrent
  • Status
    • Approved by the JCP
    • Spec lead: Anthony Lai, Naresh Revanuru (Oracle)
    • Project page:
    • Mailing List Archive:

Java API for JSON Processing (JSR 353)

The Expert Groups for most of the JSRs have already been formed but you can still participate by joining the publicly visible aliases and reviewing the drafts. All the JSRs following JCP 2.8 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

And you know all of this will be integrated in GlassFish - the Reference Implementation for Java EE 7!

Check out some early work at



thanks for that great summary.

For Bean Validation you might want to add the mailing list archive, which can be found at The forum you linked is mainly used for user feedback, the EG discussions mostly happen via the mailing list.



Posted by Gunnar on December 04, 2011 at 02:11 AM PST #

Thanks, updated!

Posted by guest on December 04, 2011 at 07:40 PM PST #

1)In Java EE specs, Nothing is said about REST and jersey client. Are they going to be continued.
2) Make Glassfish SOA suite compliant. We are forced to use weblogic.
3) Upgrade Netbeans to have GUI for SOA BPEL composite apps. We are forced to use Jdeveloper

Posted by guest on January 13, 2012 at 04:25 AM PST #

JAX-RS 2.0 is introducing a client-side API so stay tuned on that.

There are no plans to add SOA functionality to GlassFish.

Please file RFE for NetBeans.

Posted by guest on January 24, 2012 at 09:08 AM PST #

Dear Arun, sorry for forgetting such issue and i added the comment

Credits to Arun Gupta the original author of the article. in my article.

really it was a mistake.

Posted by guest on March 15, 2012 at 04:02 AM PDT #

Arun sir,before boasting about oracle's java moves,please request your bosses to improve the usability of this website,with hundreds of broken links,search-box showing 6 out of 10 items out of context,bad redirects and no site map,even a teenager web developer can come out with something better than this(don't you agree,I know you do),it is heartbreaking to see my dream company's website so poorly designed.I am sorry for such comment but I can't help it.

Posted by Frustrated but hopeful :Oracle fan on May 17, 2012 at 12:18 PM PDT #

Java EE 6 should be called java ee 2006,it was so late,and now what is planned for java ee8 scheduled 2 years from now is already being offered by 'spring source' 'microsoft' and 'ruby on rails team' for last 2 years.While Java community was inovator,Java ee community is follower.It lags behind others by atleast 4 years.Why Java enterprise edition doesn't care for enterprise security.

Posted by abhi on June 14, 2012 at 05:42 AM PDT #

Java EE 6 installation wizard style is bad.
I hope Java EE 7 installation wizard should be the same as Java SE.

Posted by guest on September 28, 2012 at 04:25 PM PDT #

Hi friends. I want to upgrade the specification level of my project from J2EE to JEE6.
Can any one please suggest me any tool or wizard to do so.
And while upgrading what precaution should I take? Is it right to upgrade to JEE6 or I should upgrade to JEE7?
I have found one article- But this article is not showing where to get this wizard from? And I think this wizard is only for IBM's IDE.

Posted by Pranay Munshi on April 22, 2013 at 10:59 PM PDT #

Wow, EL 3.0 already has lambdas!

Do you know what I would like to see in Java SE 8 and 9? Some features from EL!
For example

- lambdas (already coming to Java 8)

- empty operator, which tests null and isEmpty at the same time (could be simply added as a static method such as Collections.isEmpty(...) to avoid new syntax; the EL empty operator could be redefined as calling this method)

- collection literals for sets, lists and maps (they seemed to be on the roadmap some time ago, but nobody talks about them anymore...)

- arithmetic operators for BigInteger and BigDecimal (not operator overloading, just Java <-> EL alignment; since String can have + and +=, why not +,-,*,/,% for BigInteger and BigDecimal?)

- map and list indexing with [] (again, not operator overloading, just syntax sugar to avoid "context switch" overhead when switching between Java, EL and JavaScript)

I think this should be in Project Coin 2...
Java EE is great, and it needs an expressive foundation. Look at how easy Java EE became after @Annotations where included in Java SE.

Posted by guest on May 18, 2013 at 09:23 AM PDT #

Before JSON Processing 1.0, Java has various libraries libraries to produce and consume JSON from RESTful services.

Is there any methodology to convert from old libraries to JSON Processing API.


Posted by Java Training in Chennai on August 14, 2013 at 10:45 PM PDT #


The conversion is going to be mostly manual depending upon the APIs you are using.


Posted by Arun Gupta on September 02, 2013 at 02:09 PM 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