JSF 2.2 Early Draft Review Available

Three days ago, the JSF 2.2 Early Draft Review Specification was released.  You can download it from <http://jcp.org/aboutJava/communityprocess/edr/jsr344/> and the in-progress reference implementation can be obtained by following the instructions in my blog entry from 26 September 2011.  With this blog entry, I want to quickly survey the new and proposed features, not all of which are implemented in Mojarra yet.  The following content is taken from the Preface section in the PDF document, which is and always has been your one-stop-shop for discovering what's new in the spec.

Let me begin by re-stating what I've been saying since the JSF 2.2 kickoff BOF at CON_FESS Vienna last year: 2.0 was the last BIG FEATURE release of JSF.  From now on, JSF will be maintained with smaller, more frequent releases.  I'm hoping to get JSF 2.2 done in the first half of 2012.  The first thing you'll note about the "Changes between 2.1 and 2.2" section: it's just a list of JIRA issue with a description of each one. You can read through the list just as well as I can so I'll just call out the more interesting ones here.

Mostly Specified Features

758-ViewAction

This one is taken directly from Seam's Faces Module.  This feature viewMetadata to the next level by letting you include actions in the metadata and customizing how and when the action is delivered.  Just a <f:viewParam> is an EditableValueHolder, <f:viewAction> is an ActionSource2.

1001-UnifyCompositeAndNotCompositeComponents

Make it possible for a Facelets Tag Library to have both composite and non-composite components.

763-EverythingIsInjectable

Every kind of artifact created by JSF is now fully injectable via CDI and also can have @PostConstruct and @PreDestroy annotated methods which will get called at the right time.

869-ClientSideRequestForgeryProtection

Standardize how JSF provides CSRF protection.

1038-FaceletsResourceResolverAnnotation

Make it possible to declare a Facelets ResourceResolver without using XML.

Not Yet Fully Specified Features

730-TaskFlows

Bring the best of Spring Web Flow, ADF Task Flows, and MyFaces CODI to the JSF spec.  This feature intends to provide support for encapsulating related views together such that applications can be created as composites of modules of functionality, with each module consiting of well defined entry and exit conditions.

802-FileUpload

Finally add a component for file upload.

971-MultiTemplating

My friend and fellow java.net blogger Mamadou Lamine Ba has done some great work on this idea and is donating the core of it to the JSF 2.2 spec.  The idea is to bring the best of Joomla! to the JSF spec.  When you combine this feature with 730-TaskFlows, and put the result on top of the cloud features of JavaEE 7, you have a very compelling multi-tenant capable platform.  Please see Lamine's blog entrys from 28 August 2011 and 5 June 2011 for some great details and a sharp looking demo, running on Google App Engine.

  Technorati Tags: edburns

4 Comments

  • agoncal Newbie

    TaskFlows !!! That's brilliant. It really was the missing bit of the puzzle in EE. You have fulfilled a dream of mine ;o)

    //
    • bsdmonkey Newbie

       Am mostly excited about:

           
      • CSRF protection: it would be nice if this feature goes into Servlets spec instead.
      •    
      • TaskFlows.
      •    
      • MultiTemplating: It would be nice if you can add placeholders declaration to templates where a component contribute markup let say I have this snipest in a facelets template <div role="placeholder" name="header-area"></div> a {composite}component loaded from a jar droped into classpath (or a configurable dir specified by a context attribute) would express intent to contribute markup/style to a placeholder with name "header-area".
      //