All the JavaOne sessions I was interested in seeing today met in one room, which limited the amount of line-standing I needed to participate in. Unfortunately, I had to miss one, but a boy’s gotta eat some time.
This particular room is huge. I’m pretty bad at estimating volume, but I would guess it seats at least 1000. The sessions held in this room today were universally full.
Gavin King kicked it off with an overview of Hibernate 3.0 (actually, there was an earlier talk in this room on the JBoss kernel, but I chose sleep). Most of it was review, but the bits on filters and subselect fetching proved interesting. Hibernate Filters provide crosscutting functionality to narrow down result sets at runtime for things like temporal data or security limitations. Subselect fetching provides a new fetching technique for efficiently loading collections, avoiding the dreaded n+1 problem.
I skipped the Shale talk, though I’m becoming increasingly interested in exploring component-based web application frameworks to ease Jobster development in this tier. I did make the Tapestry discussion, JSF’s biggest competitor in the component-based java web framework market. I’ve often been tempted to dive into Tapestry, and the latest hype around trails only heightens this interest. This talk convinced me that my next scrappy project at Jobster should be done in Tapestry. My only hesitation is that JSF is now the Sun-blessed component framework, with Tapestry on the outside looking in. However, that position didn’t stop Hibernate or Spring from becoming the dominant players in their domain without Sun’s blessings.
Part of what excites me about the component framework promise is that all of the leading ones have good integration with Spring. Tapestry can use Spring outright for the backing container of its components, and JSF can be configured to, as well, as evidenced by the following talk: “Spring and JavaServer Faces: Synergy and Superfluous?” While the question posed by this session was obviously rhetorical, I still found the discussion around this topic disappointing. Maybe it’s because the integration is relatively straightforward, but most of the talk seemed like a pretty unrelated overview of Spring’s features, including an indepth discussion of how Spring can help abstract away TopLink data persistence. Whatever.
I’m now sitting in my final session for the day, fittingly the “Web Framework Smackdown.” JSF, WebWork, Struts-Shale, Tapestry, and Wicket are all represented. This seems like a somewhat odd grouping: Shale is built on top of JSF, has little to do with Struts, and many of its features are likely to make it into JSF proper. And WebWork, while technologically impressive, is the only framework here that isn’t based around components. What would really be nice if there was more cooperation and standardization around these projects. It’s doubtful that this will be possible, but each of these projects keep solving the same problems in similar fashion. So long as they keep have integration points into Spring, though, I won’t complain too loudly.