Don't expect any earth shattering changes in JavaServer Faces (JSF) 2.2

Unlike the full increment 2.0 release, the latest edition of JSF is more evolutionary than it is revolutionary. "JSF 2.2 is smaller in size and ambition than 2.0; 2.0 was a giant release, but 2.2 adds a smaller feature set" says Ed Burns, the JSF spec lead and a senior Java engineer at Oracle. "Not every release can be a blockbuster release."

But that doesn't mean JSF 2.2 doesn't include a few new blockbuster features. You may have heard of ADF task flows or Spring Web Flow, both of which are designed to work as control structures for Web sites with complex navigation graphs. The new blockbuster feature in JSF 2.2 is FacesFlows, which takes the best parts of other flow-based technologies and standardizes them. With FacesFlows, JSF has worked to take advantage of a variety of new features that have been added to JSF since the last full increment release and subsequently standardize the manner in which Web flows are programmatically managed in Java-based Web applications.

"Standards are for standardizing, not innovating," says Ed Burns. Hopefully this implies that that if you've got some experience managing Web flows with either MyFaces CODI or Spring-based implementations, you shouldn't have any difficulty picking up the model that has been standardized in JSF 2.2. Just think of FacesFlows as a conglomeration of all of the most effective features from competing technologies all rolled into one specification that moves in step with all of the latest Web-based technologies.

Sadly, many of the examples demoed in the JavaOne session used XML to manage the flows, although there still is plenty of hope for those who prefer to code as opposed to editing markup. The specification strongly supports annotations, and flows can even be written in alternative languages like Groovy if the developer is so inclined. Furthermore, the spec also supports implicit definitions that can significantly simplify flow creation and management.

The specification still hasn't been completely solidified, but you can download a working implementation from the nightly builds. The JSF spec team is still interested in input from the community before the book is closed on the first iteration of the spec.

Without a flow-like technology, a website is, as Ed Burns describes it, "just one large flow where everything is visible and there is no logical partitioning," and that just doesn't make sense for large and complicated websites. It's been a long while in the coming, but it is nice to see that JSF has finally taken the innovations seen from similar, forward thinking frameworks and finally standardized flow technology as part of the specification.