Personalizing the experience. That's the primary motif of the NFJS conference series, the brand behind JSF Summit--a conference event focused exclusively on the JSF ecosystem. It's hard to imagine a more personalized experience than the 2009 JSF Summit delivered, held at the Loews Portofino Bay Resort in Orlando, FL. Conversations between speakers and attendees occurred during talks and between talks. Interchanges began at breakfast, continued through lunch and dinner, and carried on until last call at the bar. While most of the time the dialogs were about JSF and related Java EE technology, they also ventured into topics such as religion, relaxation, tastes, travel and writing.
To view the conference from the perspective of an attendee, check out this review by Steven Boscarine, one of our valued community members.
The two major themes of the 2009 JSF Summit were JSF 2 and Java EE 6, and for good reason. On the first day of the conference, the announcement was made that Java EE 6, along with the remainder of its pedigree specifications, were ratified. JSF 2, which touched down more than a half year earlier, was finally joined with its platform; a platform backed by a robust programming model that boasts type-safe dependency injection, contextual lifecycle management and an event notification facility, features introduced by JSR-299. Combined with the countless improvements in JSF 2, the total change and value in Java EE 6 is simply astonishing. The week also saw the release of JBoss AS 6.0.0 M1, a milestone release which implements the Java EE 6 Web Profile and includes many of the technologies in the full Java EE 6 profile.
Ed Burns began the conference by taking us on a journey to some of the places JSF is used in production his keynote JSF Around the World. He replayed interviews that covered how JSF has helped developer productivity and how well it fairs in production. The common message was that JSF makes it easy put applications together and that it scales remarkably well. Most of the customers Ed spoke with either use JSF with Seam or are already putting JSF 2 to use. Tooling was cited as one of the most vital resources for development, with at least one shout-out for auto-completion of Facelets views in JBoss Tools.
The next morning, the conference sessions kicked off with a presentation by myself and Andy Schwartz titled JSF 2: Keeping progress coming. This talk turned out to be a great candidate for the first slot because it gave attendees a broad overview of the new features of JSF 2, helped them select which talks to attend later in the conference to get a deeper dive on a topic, set the stage for participation and placed an emphasis on how forward looking we are, ready to embrace ideas for #jsf2next that are already circulating.
As part of an initiative by the JSF EG to engage the community, the
Keeping progress coming talk concluded with an announcement about the new JSF community site, www.javaserverfaces.org. The goals of this site are to:
- establish a definitive starting point for users to get involved with JSF,
- provide information about JSF, the spec, how to get started, key documentation, how to get involved and other resources to help engage the community and encourage participation, and
- promote JSF as a competitive, inviting solution in the Java web framework community, both at the corporate and developer level
At last, JSF has a home!
Aside from my own talks, I can't comment much on what happened the remainder of the day on Wednesday since I presented in all but one of the time slots. (Keep an eye out for companion posts). In fact, I kept so busy the entire week that I never got to see either of the two pools at the resort or the water slide. (My wife enjoyed them on my behalf).
In the next slot I presented on the Seam and RESTEasy integration with Lincoln Baxter III, who did a fantastic job of laying out the architecture principals of REST. We then blew the audience away by showing them how to leverage Seam's CRUD framework to setup a full-blown REST service with 2-3 lines of XML. We also demoed an Android client that Lincoln put together to get people excited about the possibilities (and data) that REST can open up.
Over lunch, the JSF EG got up on stage for a panel discussion moderated by Kito Mann. On the panel, from left to right, was Jay Balunas, Lincoln Baxter, Dan Allen, Ted Goddard, Jeremey Grelle, David Geary, Ed Burns, Andy Schwartz and Kito Mann. We talked about our favorite new features in JSF 2 and what challenges we want to see solved next. There was some healthy debate about making Facelets templates based on XML rather than XHTML. Once again, the underlying theme was about looking ahead and keeping progress coming.
My next talk was on Seam Security. I always enjoy giving my Seam Security talk because the demo of that technology also blows away the audience. With 90 minutes, I was able to present how Seam Security works and then spend a whole half hour on the demo. The impact is made when ACLs and rules are cross-bred to allow users to grant context-relative permissions at runtime.
With three talks down, I was at the top of my game when I got to my presentation on CDI (JSR-299), Weld and the future of Seam. I started out by clarifying the differences between CDI, Weld and Seam. With that foundation set, I explained CDI's significance, how well it integrates and supports the Java EE platform, recommended using it over JSF managed beans, then launched into my rendition of the CDI tutorial. It all led up to the introduction of Seam 3, the first set of portable extensions for Java EE and how they are going to completely change the game. The monolithic middleware framework is dead and innovation will be driven by modularity and portability. I regret not recording that session, because I'm not sure if I'll be able to explain this stack as clearly as I did that day.
After the first day of sessions, the JSR-314 Expert Group (EG) decided to get together for a face-to-face meeting following dinner. We met in the Donatello Board Room, 1,990 square feet of business class. The plush seating and a large conference table definitely made this meeting feel official. In attendance (going around the room) was Ed Burns, Kito Mann, David Geary, Jeremey Grelle, Ted Goddard, Jim Driscoll, Lincoln Baxter, III, Andy Schwartz, Matt Drees, Martin Marinschek and Jay Balunas. On the phone were Roger Kitain and Stephen Kenna. If you weren't in attendance, don't feel left out. This meeting did not happen
behind closed doors. Both the agenda and an audio transcript of the meeting can be found the JSF Summit 09 meeting page on jcp.org. (This is the first time an audio transcript of a JSR-314 EG meeting has been open to the public). Please tune in if you are interested in the JSF community and/or specification.
The main focus of the meeting was community. We discussed future plans for the mailinglists and how the community can use them to participate. Currently, the mailinglists are undergoing migration to the jcp.org infrastructure. The plan is to have three lists:
The first list is actually a public forum, jsr-314-public, that the community can use to discuss the spec and future of JSF. Access will be open to the public for reading and writing (a free jcp.org account may be required to post, we haven't decided whether that restriction will remain). The second list, jsr-314-observers, is the main design list. Access will be open to the public for reading and members of the extended EG (the EG plus invited guests that work on implementations, component libraries or extensions) will be allowed to post. Finally, there is an internal EG list, jsr-314-eg, for
offline discussions, typically involving licensing or legal matters. No discussions involving design will take place on that list.
Lincoln then announced the JavaServer Faces community site initiative, introduced above. There was a lot of discussion about how important it is to get the word out on JSF 2, engage the community so that they can get their voices heard and ultimately so that JSF can continue to thrive and progress. The relationship with JSFCentral was clarified and Kito shared his plans for JSFCentral 2.0, which will be based on Liferay portal and offer social networking features. We also talked about the importance of creating a logo for JSF so that people can better identify with the technology (stay tuned for details).
Turning our attention to technical matters, we began discussing Ajax interop between component libraries (RichFaces, ICEFaces, ADF Faces, etc). That quickly led to a discussion of plans for JSF 2.next. Ed ensured the group that there would be a maintenance release of JSF 2.0 in the near future (~January) to correct spec errors and other minor corrections. A formalized release would be further out. Naturally, the Sun-Oracle deal is complicating matters, but the EG is dedicated to keeping progress on JSF moving.
Other matters were also discussed, such as establishing a performance baseline to help us make informed decisions about introducing new features and to allow us to focus our attention on areas of JSF were performance might be a problem. We deferred the post-mortem analysis of the JSR-314 process and how to improve it for a future meeting. But that didn't mean that we stopped talking. After an hour and a half, we were getting a lot thirsty and decided to call it a night and head towards the Thirsty Fish for drinks and social (yet undeniably technical) hour.
I was a little slow getting up the next morning (I did 4 1.5 hour talks and participated in the panel discussion on EG meeting after all; it wasn't just the drinks) and spent much of the day either chatting with people or attending sessions on topics I didn't know much about. I caught Micha Kiener's talk on the Edoras framework, a comprehensive extension to JSF covering much of the same ground as Seam, but from a slightly different angle.
The last talk of the day was the one I had anticipated all week, a presentation by Lincoln Baxter III about his project PrettyFaces. PrettyFaces is an Open Source extension for JSF 1.2 and JSF 2.0, which enables creation of bookmarkable, pretty URLs. Several of the EG members really wanted to get pretty URLs into JSF 2.0, but it was clear that we didn't have a solid proposal at the time, partly because we weren't 100% sure about the goals. This talk will likely go down as a major turning point. Lincoln spoke in front of an audience that included 8 JSF EG members, myself included. Lincoln did an excellent job presenting the topic and I think we came away with a clear understanding of the problem that needs to be solved. I'm certain we can get pretty URLs into the next revision of the specification.
I separated from the crowd during dinner to prepare for my keynote on Java EE 6 that followed, titled
Java EE 6: Here and Now (slides). Once again, the timing was perfect. In the keynote I talked about the significance of the week in Java EE history. Only a day earlier, Java EE 6 was ratified. I emphasized that while there were technology improvements, this revision of the spec was marked by extensive collaboration and integration between sibling specifications. The combination of JSF and CDI is going to make developing applications tremendously pleasant and productive. And the creation of the web profile should close the gap between servlet containers and application servers, hitting the happy medium where developers can be productive and have all the key technologies that they need to create enterprise web applications. Most importantly, the future is upon us. Java EE 6 is available today, either in GlassFish V3 or JBoss AS 6 (a Web profile impl). I walked away from the podium feeling a tremendous sense of pride in the platform, as did the audience.
Following the keynote, we spent another long night at the Thirsty Fish sharing stories, ideas and just getting to know each other better. The next morning I caught Stan Silvert's talk on JSFSpy and WARlets, but I heard I missed a tremendous presentation by Cagatay Civici, creator of PrimeFaces, so be sure to check out that project. A couple of BOFs brought the conference to a close. In the Seam BOF, I explained the modularity of Seam 3, our plans to move the repository to Git (or Mercurial) and encouraged everyone to get involved.
We are a pretty accommodating bunch. This collaboration will lead to better components and interoperability between these component sets. In the end, this is all going to be very good for the users, and the technology.
One of the unique parts of this conference is that there is no division between conference attendees, speakers and EG members. Speakers sat with attendees, attendees participated in sessions, speakers filled seats in sessions, EG members sat on both sides of the
expert panel, community members joined the EG meeting and everyone shared their experiences in real time on twitter. I attribute this level of interaction to a mutual respect and willingness to put ego aside in the spirit of collaboration and progress. That's how I want people to think of JSF 2.