1 2 3 Previous Next


182 posts

Recent Ripple of JSF Extensions


My colleague Manfred Riem tipped me off to a new framework built on JSF, ButterFaces.  This whimsical name started an amusing Twitter thread, but also, and much more importantly brought several other new JSF extensions to light. This is the sort of thing that I used to look to Kito Mann's JSF Central Frameworks Page for, but it seems that needs an update.  So, in addition to ButterFaces, here are several other JSF extensions that are definitely worth a look.


BootsFaces focuses on Twitter Bootstrap 3 and jQuery UI.


Material Prime is a PrimeFaces extension that lets you build web apps that conform to Google's "Material" design language.


Generjee is a Java EE application generator that outputs JSF+JavaEE 7+CDI code.  FWIW, I would be remiss if I didn't point out that there is nothing named JEE.  So, I suggest this project rename itself to generee.  I think that's snappier anyway.


This recent flurry of activity shows two things.  First, the continuing vitality of the JSF ecosystem.  By now I think we all know that the ecosystem around the technology is just as important as the technology itself.  It's like this.  A technology has to be "good enough" to get the job done.  That's a given.  Heck, it could even be excellent technology.  But without an ecosystem around it, even the best technologies will not survive.  Second, there is still interest and value in server side state UI frameworks.  My recent work with HTTP/2 in Servlet 4 has shown me that such frameworks are very well positioned to take advantage of the optimizations in the HTTP/2 protocol, as well as other performance optimizations shown in Ilya Grigorik's excellent High Performance Browser Networking.


So, check out these new frameworks and don't be afraid to question conventional wisdom.

Day three was definitely the high point of the conference for me.  As anyone who has spoken at tech conferences knows, the point in time when all of one's sessions have been given is the turning point between tempered enjoyment and pure enjoyment of the conference.  I was blessed with the scheduling this year; I was all done after Wednesday.  This put me in a great frame of mind to enjoy the Oracle Appreciation Event.  Day three also saw the culmination of a long running project: the Web Framework Smackdown 2014 edition.


My friend and colleague Reza Rahman asked me to keep the web framework smackdown meme going for another year.  This year I called in quite a few favors to pull together a diverse group of celebrity panelists: Miško Hevery, creator of AngularJS at Google, Pete Hunt creator of ReactJS at Facebook, panelists preparing and Joonas Lehtinen, creator of Vaadin.  The panel was moderated by Neal Ford of ThoughtWorks.  I rounded out the panel representing JSF.  I've learned from previous smackdowns that a confident and comfortable moderator combined with a little prep time just before the panel are the keys to success.  We met at 11am for this purpose over Patxi's pizza. From the left you can see Neal Ford, Miško Hevery, myself, Joonas Lehtinen, and Pete Hunt.  I don't think Pete and Miško had met before, and it was interesting hearing them trade notes about their approaches to the performance of handling the model update side of their frameworks.  From what I gathered, they both see that feature as the most valuable aspect of their frameworks, and they both have spent significant time optimizing that part.  When it came time to take it on stage, we started by introducing our different approaches to the task of building a stateful and responsive user interface delivered in a web browser.  Angular and React are entirely client side, while JSF and Vaadin are entirely server side.  In spite of Neal's earlier recommendation that client side is the way of the future, Joonas and I made the case for where server side makes sense.  Briefly, reasons for favoring server side over client side include simplicity, security, integratability (such as mashups), and maintainability.  Client side is better when Facebook-sized scale is important, when JavaScript fluency is a non-issue, and when "modern" browsers are a given.  You'll have to check out the audio to get the full details.  My only complaint with the panel is that it really didn't get smackdown-ish at all.  I welcome comments about the client/server UI debate.  Perhaps we can get some smackdown action in the comments.


My last official obligation of the conference was my final booth duty in the Java EE both.  This session closed out the JavaOne exhibition, and as such the traffic was a bit light.  I was able to take a tour around the exhibition to obtain some schwag for my kids.  This year it was novel to see Target with a booth.  I've long been a fan (and shareholder) of Target, avoiding Wal*mart at all (unfortunately frequently too high) costs.  They were recruiting.  JavaOne is not a job fair, but it was still nice to see them representing Minneapolis, home of Facelets creator Jakob Hookom.


Geert and the NullPointers   Freddy, Frank, and Ed Booth duty done, it was on to a bit of fun in Duke's Cafe.  As I mentioned in my JavaOne 2014 Day One blog entry, Chicago JUG leader Freddy Guime had put together a band of musician Java enthusiasts called the NullPointers. They allowed me to sit in with them for some songs during their set at 5pm Wednesday.  This was a real honor and a great blast.  At left, from the left you see Zoran Severac, Mattias Karlsson, of JFokus, Geert Bevin of ZeroTurnaround, and Jim Weaver, Java Developer Advocate for Oracle.  At right, from the right, you see Freddy, Frank Greco of the New York Java Users Group and myself.  I think my keyboard stand was formerly in the Hackergarten.


The fun kept on rolling, with the Oracle Appreciation Event.  This used to be called the Customer Appreciation Event.  I'm not sure why they renamed it.  I would probably have given it a pass this year but for my 11 year old who is a big Macklemore fan.  I'm glad I went because Macklemore was very entertaining, and Aerosmith put on a great show as well.

Update 1: added content about Greg Wilkin's Async IO session.


The first real day of the conference began with session one of two obligatory Oracle booth duty assignments.  Our booth had two foci: showing off Java EE 7 using the Cargo Tracker Blueprints Application and providing insight into our plans for Java EE 8.  To spice things up a bit and perhaps draw some people in, I brought along my kit-built homebrew Theremin, pictured here. Homebrew Theremin In my opinion, Java EE 8 is all about solidifying the platform by increasing cohesion between the already loosely copuled parts, while making incremental improvements to the parts of the platform that relate directly to building HTML5 delivered web applications and hosting them on the cloud. I've taken the liberty of uploading David Delabassee's excellent Java EE 8 slides to slideshare (Congrats on the $118 million payout, by the way.)  I always enjoy doing booth duty.  I look at it like I'm a TA doing office hours: if people want to catch me at JavaOne, this is the best time for it.


Another fun aspect of JavaOne is how it all blends together.  Towards the end of my booth duty session, my colleague and Servlet co-spec lead Shing Wai Chan stopped by and we put the finishing touches on our slides for "CON5898 - What Servlet 4.0 Means to You".  Of all the JavaOne conference sessions and BOFs in which I played a role this year, this was to be the most technical.  I've uploaded the slides to slideshareDavid Delabassee tells me this one will be in the first or second group to be uploaded to Parleys.  There were 162 pre-registrations for the session and I'd estimate there were about 200 in the room.  The session was notable for being the only Java EE session that featured Java SE 9 technical content.  After explaining the why and how of HTTP2, as well as how it may be exposed in the Servlet 4.0 API, I included some content on JEP110, the HTTP2 client for Java SE 9.  Both the client and server side are still very undefined at this point, but it's good to give people an insight into where we're going.


Directly after the Servlet 4.0 session, we lead a parade over to the Sutter conference room in the Hilton for the combined JSF 2.3/Servlet 4.0 EG kick-off meeting.  While a pale shadow of its former self, it was still a useful meeting.  The full audio has been uploaded to the project area on java.net for both Servlet and JSF.  My intention for the meeting was to establish the scope for these two specs and decide on next steps.  One big take-away, suggested by Greg Wilkins, is the need for additional use cases for HTTP2 server push, aside from the obvious and important one of a web framework that has a-priori knowledge of the resources that are associated with a given web page. We all took the action item to look for such cases and share them with the EG.  Another notable item for the kick-off meeting was an interesting idea from Neil Griffin.  Neil suggested we might investigate using our announced dependency on Java SE 8 and its built-in JavaScript engine, to increase the dynamism of JSF apps.  Briefly, Neil's idea is to introduce a lifecycle phase after render-response that would do some processing on the rendered view to prepare it for quick display in the browser DOM, delivering a direct-to-DOM view of the page.  I asked Neil to think about it some more and consider sharing the idea on the EG list.


As a general rule, I like to listen at more than I talk, but today the only session I was able to attend was Greg Wilkins's CON2236 Async IO session.  The slides have already been posted at the JavaOne website.  Greg is an excellent speaker, do make a point of seeing this session when it comes up on Parleys.  Greg did an excellent job of explaining the gotchas of async IO programming, without any Responsive Manifesto hype.  Very interestingly, he did admit that the his original objections to some of the Async Servlet API during the JSR-340 expert group discussion proved to be unfounded and that he rather liked how the API turned out in the end.


JCP Party Picture Next on the agenda was the Annual JCP Awards Party.  The nominees and award winners are documented at < https://jcp.org/en/press/news/awards/2014award_nominees >.  There was some real competition in the events this year, but I'm happy to announce that Heather VanCura won the JCP Member/Participant of the year award.  Speaking as a fellow Oracle employee, we all owe a debt of gratitude to Heather and her colleagues for continuing to demonstrate the value of the Java Community Process within a very shareholder-value (that is, short-term value) focused company.  Standards pay dividends, but they tend to be long-term rather than short term.


This year continues the tradition started last year of hosting the event at the Cityscape area on the top floor of the San Francisco Hilton.  In the image at left you'll see Heather announcing the awards. You'll also notice some musical instruments.  These were furnished courtesy of JFrog and played by a group fronted by Geert Bevin. The group was a pick-up band composed of members of the Java Community and went by the name of, "The NullPointers".  In addition to Geert, the band included Freddy Guime of the Chicago Java Users Group, Frank Greco of the New York Java Users Group, Jim Weaver, Java Developer Advocate for Oracle, Zoran Severac, Cesar Hernandez, and Mattias Karlsson, of JFokus.  I was going to sit-in on keyboard, but, as mentioned above, things blend together at JavaOne, and I had to leave the party early to present my JSF 2.3 BOF over at Moscone.  Thankfully the band gave me another chance to sit in during their 2nd performance on Wednesday.  It was sub-optimal to have to leave such a great event, but the community is more important than the community, in this case, so off to Moscone I went.


This was the first year since the Oracle acquisition that any part of JavaOne has been held in Moscone.  This year only the Mondy night BOFs were held there, but I'm hoping it's the beginning of a trend.  This being a BOF, rather than a technical session, I incorporated content from two JSF Expert Group Members, Kito Mann and Ian Hlavats.  My slides are at slideshare, as well as Ian's. The basic idea for JSF 2.3 is to provide a vehicle to attend to the fit and finish of the JSF spec, addressing JSF customer issues that have accrued over the years, and give the community a vehicle to propose, drive, and implement features that they feel are important, subject to final-cut from Manfred and I.  The former category will include things like multi-component validation, Ajax method invocation, and better CDI integration.  The latter category may include things like Kito's proposed JSON component rendering and Ian's proposed Twitter Bootstrap integration.  Again, the emphasis in the latter category is for the community to do the heavy lifting, with oversight, veto authority and integration help from Oracle.


That's not a bad first day!  Booth duty, technical session, EG meeting, JCP Party, and BOF.

I estimate that this is my 15th or 16th JavaOne.  I started in 1998 or 1999 and missed 2003 due to the birth of my first son.  Aside from that, I haven't missed one since.  I consider myself very blessed to have taken a small part in such a long and fun ride.  To add blessing on top of blessing, this is the fourh JavaOne at which I have had the honor to teach a class at Java University.  My good friend Oliver Szymanski and I repeated our class from last year, updated with new content.  We had 16 students, and they were fully engaged, learning about JSON, WebSocket, JSF and HTML5.  After the class, which ran from 09:00 - 16:00, Ollie and I took in the Oracle OpenWorld Keynote and then headed over to the GlassFish party at ThirstyBear.  This event has stood the test of time, becoming the one time of the year when the leading lights of the Java Community come together to compare notes and set plans for the big week ahead.  The real action starts tomorrow.  My agenda includes giving my Servlet 4.0 talk with Shing-Wai Chan and my JSF 2.3 talk with Manfred Riem, Ian Hlavats and Kito Mann, in addition to the requsite booth duty from 09:30 - 12:00.

I meant to mark this anniversary when it came up, but missed doing so.  It's been ten years, so what's an additional five weeks going to mean.  On 28 June 2004 I announced, with my first entry on this blog, the first part of Java to be released into open-source.  That initial release of the JavaServer Faces reference implementation was the first step in the journey towards opening Java that completed in April 2009 with the removal of the last binary plug from the OpenJDK.  For my part, I've been blessed to work on open source technology all these years and have enjoyed many collaborations with the best software development community in the world, the Java community.  I hope we all can continue to create the future of Java in the coming years.


HTTP/2 and Java Blog

Posted by javaserverfowner Jul 29, 2014

Filter Blog

By date: