JSF 2.0 Group Blog

Tuesday Jul 15, 2008

JSF 2 Orientation

Let me get this blog started by answering a simple question:

What is JavaServer Faces 2.0, and why should I care?

JavaServer Faces is the standard web application framework for the Java platform. JSF 2.0 is the first major update of the specification since its initial release back in 2004 (yep, JSF is four years old now). JSF 1.2, which came out in 2006, focused on fixing major incompatibility problems with JSP, and also lots of other issues. But JSF 2.0 is the first chance for us to take a step back, analyze what we've learned, and come up with some great new features and enhancements.

You may have noticed that there were two years between JSF 1.1 and 1.2. For better or worse, this is average for JSRs. When JSF 2 comes out, more than two years will have passed since 1.2 was released. Two years is a lot of time in the web development space. It's inevitable that there will be new some trend, feature, or technology during that time frame. Fortunately, innovation doesn't stand still, and dozens of excellent libraries, tools, and UI components have been built on top of JSF. These extensions, made possible by JSF's powerful architecture, have filled in missing functionality and solved common pain points.

So, here's a more concrete answer:

JSF 2 will include all of the key improvements developers have wanted over the past few years.

Why? Because those of us on the Expert Group have paid attention to the community, both in terms of looking at existing solutions and gathering common issues. Ed Burns, the JSF 2 co-spec lead handled this in a pretty methodical manner, as explained in his JSF 2 One Pager.

The other key thing is that the JSF 2 Java Specification Request is very broad. This keeps us from being constrained (as we were with JSF 1.2), but it does mean that everything mentioned in the JSR may not necessarily be in the final release. There are, however, four key focus areas of focus: Ease of Development, New Features, Runtime Performance and Scalability, and Adoption.

Here's the list of major items we're currently tackling:

  • Resource management (stylesheet, images, etc.)
  • Ajax component interoperability
  • Simplified component development
  • Integration of Facelets (with ideas from JSFTemplating)
  • Bookmarkable URLs
  • Zero deployment time
  • Additional scopes
  • Improved error reporting

Now, don't get me wrong -- we're considering other items. These are just the big ones.

These big ticket items have some subtle implications. For example, Ajax component interoperability implies a thin JavaScript layer provided by a JSF implementation. Zero deployment time implies auto-loading of JSF artifacts, and also support for scripting languages such as Groovy. This has already been implemented in the reference implementation and is also being implemented in MyFaces, although it's not yet in the spec). Simplified component development means you'll be able to write a JSF component with a single file.

If you want to keep up with the progress of JSF 2.0, there are few key places you should know about:

And of course, keep your eye on this blog and JSFCentral. Here I'll keep you up to date on the expert group's progress, and also point out resources as they become available.


Post a Comment:
Comments are closed for this entry.