The Decisive Moment in the History of JSF

JavaServer™ Faces (JSF) is one of the standards developed under the Java Community Process (JCP) and was first introduced with Java EE 1.4. The first version of JSF had its share of proponents, but also had its share of criticism. Over the years it has been continuously improved by JCP Expert Groups (EGs) and extended by 3rd-party libraries like PrimeFaces, ICEfaces, RichFaces, OmniFaces, BootsFaces, AngularFaces, ADF Faces, OpenFaces, MyFaces Tomahawk, MyFaces Trinidad, and Liferay Faces.

In a recent poll of over 1,000 respondents, JSF ranked as the most popular webapp framework (just ahead of Spring MVC). Over the years I've asked myself the question -- What is the main reason for the longevity of JSF? Also, why do so many developers continue to use JSF in new projects? Here are some possible reasons:

  • The expertise of Amy Fowler in bringing Swing-like ideas to JSF in the web tier?
  • The leadership of Ed Burns as a Spec Lead since the very beginning?
  • The helpful answers by EG members Bauke Scholtz (a.k.a BalusC) and Arjan Tijms at StackOverflow?
  • The variety of JSF books published over the years?
  • The industry backing of Oracle/Sun, RedHat/JBoss, IBM, PrimeTek, ICEsoft, and Liferay?
  • The tooling provided by IDEs like NetBeans, Eclipse, and IntelliJ IDEA?
  • The advocacy by EG member Kito Mann of JSF Central?
  • The open source nature of Mojarra, MyFaces Core, and the many JSF component suites?
  • The talents of developers like Ryan Lubke and Manfred Riem of Mojarra?
  • The commitment of Martin Marinschek and Leonardo Uribe of Irian to MyFaces?
  • The integration efforts made by JBoss developers like Stan Silvert, Gavin King, Pete Muir, Wesley Hales, Lincoln Baxter III, and Ken Finnigan?
  • The contributions made by developers like Adam Winer and Andy Schwartz of ADF Faces?
  • The solutions by developers like Ken Pausen of JSF Templating and Jacob Hookom of Facelets?
  • The creativity of developers like Ted Goddard, Deryk Sinotte, and Mark Collette at ICEsoft?
  • The ingenuity of developers like Alexander Smirnov, Jay Balunas, Ilya Shaikovsy, and Brian Leathem of RichFaces?
  • The innovation by developers like Çağatay Çivici, Mert Çalışkan, and Thomas Andraschko of PrimeFaces?

Perhaps all of these reasons combined may be the answer.

But I think there is a decisive moment in the history of JSF that is the primary reason why the technology is still popular in new projects today. Here is a brief chronological list of some possibilities:

1. 11 Mar, 2004 JSF 1.0 is released under JSR 127, Spec Leads: Craig McClanahan and Ed Burns.
2. 27 May, 2004 JSF 1.1 is released under JSR 127, Spec Leads: Craig McClanahan and Ed Burns.
3. 09 June, 2004 Hans Bergsten (expert group member of JSR 127/252) publishes an article titled Improving JSF by Dumping JSP claiming that a view technology other than JSP would be necessary to fully take advantage of JSF.
4. 28 June, 2004 Ed Burns posts a blog announcement that Sun Microsystems has released the source code of the JSF RI (later to be named Mojarra).
5. 13 Apr, 2005 Apache MyFaces 1.0.9 is released as an alternative implementation to the JSF RI.
6. 17 Aug, 2005 Jacob Hookom (member of the JSR 252 EG) publishes the first of a three-part series of articles titled Inside Facelets on JSF Central which describes the Facelets templating language as an alternative view technology for JSF.
7. 21 Apr, 2006 Ken Paulsen makes one of the first CVS commits to the JSF Templating project.
8. 11 May, 2006 JSF 1.2 is released under JSR 252, Spec Leads: Ed Burns and Roger Kitain.
9. 14 Nov, 2006 ICEsoft announces in a press release that ICEfaces is made available under an open source license.
10. 29 Mar, 2007 Red Hat and Exadel announce a partnership that makes RichFaces available under an open source license.
11. 29 Oct, 2008 Çağatay Çivici makes the first commit to PrimeFaces.
12. 01 Jul, 2009 JSF 2.0 is released under JSR 314, Spec Leads: Ed Burns and Roger Kitain.
13. 22 Nov, 2010 JSF 2.1 is released under JSR 314, Spec Leads: Ed Burns and Roger Kitain.
14. 13 Jan, 2011 Portlet 2.0 Bridge for JSF 1.2 is released under JSR 329, Spec Lead: Mike Freedman.
15. 21 May, 2013 JSF 2.2 is released under JSR 344, Spec Lead: Ed Burns.
16. 09 Sep, 2014 Ballot to begin work for JSF 2.3 is approved under JSR 372 with Ed Burns and Manfred Riem as co-spec-leads.
17. 21 Jul, 2015 Ballot to begin work for Portlet 3.0 Bridge for JSF 2.2 is approved under JSR 378.

Conclusion

Which event do I think was the decisive moment in the history of JSF?

#6: 17 Aug, 2005: Jacob Hookom publishes the first of a three-part series of articles titled Inside Facelets on JSF Central.

Why do I think that is the case? Well as Rick Hightower once wrote: "Facelets fits JSF like a glove." And as Gavin King once said in an interview: "I think Facelets is by far the best templating engine I have ever worked with."

It is my opinion that the widespread usage and adoption of JSF can likely be traced back to Jacob's article at JSF Central, which led to the widespread usage of jsf-facelets.jar in JSF 1.2 webapps and the eventual inclusion of Facelets in the JSF 2.0 standard under JSR 314.

I would like to thank everyone mentioned in this article, everyone who has worked on the JSF EGs over the years, as well as the Faces of JSF for their dedication and hard work.

Blogs
Great post, Neil! It is great to see all of this JSF history captured in a single post. I agree with you that Facelets integration into JSF has been a game-changer. It has certainly changed the way that we all develop JSF applications, making our lives much easier.

I would also like to add that inclusion of the f:ajax functionality, as well as stateless views have helped to bring JSF forward with the rest of the modern day web frameworks.