X

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

    • Approved by the JCP

    • Spec lead: Linda DeMichiel, Bill Shannon (Oracle)
    • Project: href="http://java.net/projects/javaee-spec/pages/Home">javaee-spec.java.net
    • Mailing Lists Archive: href="http://java.net/projects/javaee-spec/lists/jsr342-experts/archive">jsr342-expert@javaee-spec.java.net,
      href="http://java.net/projects/javaee-spec/lists/users/archive">users@javaee-spec.java.net

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
    • Approved by the JCP

    • Spec lead: Linda DeMichiel (Oracle)
    • Project: jpa-spec.java.net
    • Mailing Lists Archive: href="http://java.net/projects/jpa-spec/lists/jsr338-experts/archive">jsr338-experts@jpa-spec.java.net,
      href="http://java.net/projects/jpa-spec/lists/users/archive">users@jpa-sepc.java.net.

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

    • Approved by the JCP, Early Draft href="http://jcp.org/aboutJava/communityprocess/edr/jsr339/index.html">Available,
      href="http://jax-rs-spec.java.net/nonav/2.0/apidocs/index.html">Draft
      Javadocs

    • Spec lead: Santiago Pericas-Geersten, Marek Potociar
      (Oracle)

    • Project: jaxrs-spec.java.net

    • Mailing List Archive: href="http://java.net/projects/jax-rs-spec/lists/jsr339-experts/archive">jsr339-experts@jax-rs-spec.java.net,
      href="http://java.net/projects/jax-rs-spec/lists/users/archive">users@jax-rs-spec.java.net

Servlets 3.1 (href="http://jcp.org/en/jsr/detail?id=340">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:
    • Approved by the JCP

    • Spec lead: Shing-Wai Chan, Rajiv Mordani (Oracle)
    • Project: servlet-spec.java.net
    • Mailing List Archive: href="http://java.net/projects/servlet-spec/lists/jsr340-experts/archive">jsr340-experts@servlet-spec.java.net,
      href="http://java.net/projects/servlet-spec/lists/users/archive">users@servlet-spec.java.net

Expression Language 3.0 (href="http://jcp.org/en/jsr/detail?id=341">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
    • Approved by the JCP
    • Spec lead: Kin-man Chung (Oracle)
    • Project: el-spec.java.net
    • Mailing List Archive: href="http://java.net/projects/el-spec/lists/jsr341-experts/archive">jsr-341-experts@el-spec.java.net,
      users@el-spec.java.net

Java Message Server 2.0 (href="http://jcp.org/en/jsr/detail?id=343">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
    • Approved by the JCP

    • Spec lead: Nigel Deakin (Oracle)
    • Project: jms-spec.java.net
    • Mailing List Archive: href="http://java.net/projects/jms-spec/lists/jsr343-experts/archive">jsr-343-experts@jms-spec.java.net,
      href="http://java.net/projects/jms-spec/lists/users/archive">users@jms-spec.java.net

Java Server Faces 2.2 (href="http://jcp.org/en/jsr/detail?id=344">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
    • Approved by the JCP, Early Draft href="http://jcp.org/aboutJava/communityprocess/edr/jsr344/">Available

    • Spec lead: Ed Burns (Oracle)
    • Project: href="http://javaserverfaces-spec-public.java.net/">javaserverfaces-spec-public.java.net
    • Mailing List Archive: href="http://java.net/projects/javaserverfaces-spec-public/lists/jsr344-experts/archive">jsr344-experts@javaserverfaces-spec-public.java.net,
      href="http://java.net/projects/javaserverfaces-spec-public/lists/users/archive">users@javaserverfaces-spec-public.java.net

EJB 3.2 (href="http://www.jcp.org/en/jsr/detail?id=345">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
    • Approved by the JCP
    • Spec lead: Marina Vatkina (Oracle)
    • Project: ejb-spec.java.net
    • Mailing List Archive: href="http://java.net/projects/ejb-spec/lists/jsr345-experts/archive">jsr-345-experts@ejb-spec.java.net,
      href="http://java.net/projects/ejb-spec/lists/users/archive">users@ejb-spec.java.net

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

    • Approved by the JCP, Early Draft href="http://jcp.org/aboutJava/communityprocess/edr/jsr346/index.html">Available

    • Spec lead: Pete Muir (RedHat)
    • Project: CDI
      1.1 Development


    • Mailing List Archive: href="http://lists.jboss.org/pipermail/cdi-dev/">cdi-dev,
      @jsr346

Bean Validation 1.1 (href="http://jcp.org/en/jsr/detail?id=349">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
    • Approved by the JCP

    • Spec lead: Emmanuel Bernard (RedHat)
    • Project: beanvalidation.org

    • Mailing List Archive: href="http://lists.jboss.org/pipermail/beanvalidation-dev/">beanvalidation-dev

JCache (href="http://jcp.org/en/jsr/detail?id=107">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: href="https://github.com/jsr107/jsr107spec">jsr107spec

    • Mailing List Archive: href="http://groups.google.com/group/jsr107">jsr107@googlegroups.com




State Management (href="http://jcp.org/en/jsr/detail?id=350">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
    • Approved by the JCP
    • Spec lead: Mitch Upton (Oracle)
    • Project page: href="http://java.net/projects/java-state-managemen/">java-state-management.java.net

    • Mailing List Archive: href="http://java.net/projects/java-state-managemen/lists/jsr-350-experts/archive">jsr-350-experts@java-state-management.java.net,
      href="http://java.net/projects/java-state-managemen/lists/jsr-350-users/archive">jsr-350-users@java-state-management.java.net


Batch Application for the Java
Platform (
href="http://jcp.org/en/jsr/detail?id=352">JSR 352style="font-weight: bold;">)
  • 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
    • Approved by the JCP
    • Spec lead: Chris Vignola (IBM)
    • Project page: jbatch.java.net

    • Mailing List Archive: href="http://java.net/projects/jbatch/lists/issues/archive">issues@jbatch.java.net

Concurrency Utilities for Java
EE (
href="http://jcp.org/en/jsr/detail?id=236">JSR 236style="font-weight: bold;">)

  • 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 jcp.org
  • Public read-only issue tracker

And you know all of this will be integrated in href="http://glassfish.org">GlassFish - the Reference
Implementation for Java EE 7!

Check out some early work at href="http://glassfish.org/javaone2011">glassfish.org/javaone2011.

Join the discussion

Comments ( 12 )
  • Gunnar Sunday, December 4, 2011

    Arun,

    thanks for that great summary.

    For Bean Validation you might want to add the mailing list archive, which can be found at http://lists.jboss.org/pipermail/beanvalidation-dev/. The forum you linked is mainly used for user feedback, the EG discussions mostly happen via the mailing list.

    Thanks,

    --Gunnar


  • guest Monday, December 5, 2011

    Thanks, updated!


  • guest Friday, January 13, 2012

    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


  • guest Tuesday, January 24, 2012

    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.


  • guest Thursday, March 15, 2012

    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.


  • Frustrated but hopeful :Oracle fan Thursday, May 17, 2012

    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.


  • abhi Thursday, June 14, 2012

    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.


  • guest Friday, September 28, 2012

    Java EE 6 installation wizard style is bad.

    I hope Java EE 7 installation wizard should be the same as Java SE.


  • Pranay Munshi Tuesday, April 23, 2013

    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.

    http://publib.boulder.ibm.com/infocenter/radhelp/v8/index.jsp?topic=%2Fcom.ibm.javaee.doc%2Ftopics%2Ftmgv6j2eewiz.html


  • guest Saturday, May 18, 2013

    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.


  • Java Training in Chennai Thursday, August 15, 2013

    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.

    Snakar


  • Arun Gupta Monday, September 2, 2013

    Snakar,

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

    Arun


Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.Captcha
Oracle

Integrated Cloud Applications & Platform Services