I'm pleased to announce two pieces of original content at JSFCentral (part of renewed emphasis on the site). The first is a podcast with Gavin King, where we discuss Seam and JSF in detail. Here’s an excerpt:
Kito: Okay, so we are talking about state and how it is not such a bad thing after all. In more specific terms, what is a stateful component in Seam and how does the conversation play into that?
Gavin: A stateful component is just a stateful session bean, or in fact can be any Java class. You don’t have to use EJB 3 with Seam if you don’t want to. It is just a Java class which would specify a context. You can say "this object is scoped to the conversation” or “this object is scoped to the session." In fact this is a model that is just taken straight from the JSF managed bean model, but what we have done is added new contexts -- we added the conversation context and the business process context -- to that model. It can be bound to the view layer just by EL expressions, just like in JSF. So then these stateful components are able to interact with each other so we kind of have a more sophisticated version of dependency injection, which is designed to cope with the problems that you come across when you have stateful components from different contexts interacting with each other. What we are trying to achieve in the component model is extremely loosely coupled applications.
Download the podcast or read the transcript here: Gavin King Podcast
The second article is an
In the Trenches story about how Jason Lee and his team at IEC developed a file upload JSF component that integrates with an applet, and donated it to the Mojarra Scales project. Here’s an excerpt:
Lee became involved when it was time to tackle an issue with regard to file uploads. He explained:
While the application itself is not too exciting, what makes it interesting is the custom component we wrote to work around an HTML limitation. When the TDM group uploads these BOMs, there can easily be 20-30 at a time that they need to upload. With the plain HTML file input widget, the user can only select one file at a time. While there are some pretty slick and clever ways to make that more palatable, the requirement that the user click a button before selecting each file -- over and over -- was quickly dismissed as unacceptable. To work around this, we looked at projects like JUpload, but they did not work exactly how we'd like, and setting it up on the page was more work than we wanted to see.
Read the rest of the article here: In The Trenches
I also tracked down Dan Allen, who was at JavaOne crashing parties and soaking up the excitement, for his thoughts on Seam, Seam in Action, and Seam's integration with Spring. The fervor of JavaOne had Dan fired up on this particular evening, so this episode is sure to please. He went on to discuss what to expect from his book, why integration with Spring is desirable and some of the differences in philosophies of the two frameworks (and its creators), how to respect the persistence context, and some of his wishes for JSF 2. Here is an excerpt:
So really the idea is Seam provides some annotations that you add to classes to make components. If you use the components straight from JSF or any EL value expressions, you can be accessing EJBs. So people realize that "I'm using an EJB right now, this is incredible. I have never had the opportunity to get here before because JNDI look-ups and getting stuff configured can be daunting." So Seam really closes all those gaps. At the same time it says "why don't you use EJB 3s from your JSF? Why do you have these backing beans that are really worthless? They just pass stuff back to the other layers." That's not to say you can't do it with Seam. You have the option of having a very layered app, or you have the option of having very collapsed layers in your app.
Download the podcast or read the transcript here: Dan Allen Podcast
You can expect more content from JSFCentral this summer.
Kito D. Mann