Blogs

View all Blogs >>

Dan Allen

Independent software consultant, author, and open source advocate

Dan Allen
Dan Allen is an independent software consultant, author, and open source advocate. After graduating from Cornell University with a degree in Materials Science and Engineering in 2000, Dan became captivated by the world of free and open source software, which is how he got his start in software development. He soon discovered the combination of Linux and the Java EE platform to be the ideal blend on which to build his professional career. In his search for a robust Web framework, Dan happened upon JBoss Seam, which was quickly granted this most coveted spot in his development toolbox. Excited about Seam, Dan decided to share his thoughts with the world. He is now the author of Seam in Action, published by Manning Publications, a project which he picked up immediately after completing his three-part series on Seam for IBM developerWorks. Dan continues to write articles on Seam and related technologies such as JSF, JPA, and Hibernate. Dan is a committer on the Seam project, an active participant in the Seam community, and a Java blogger. You can keep up with Dan's development experiences by subscribing to his blog at http://mojavelinux.com

Blog

"Seam in Action saved my life"

Posted Wednesday, May 7, 2008

I more »

Avoid this common JSF mistake

Posted Thursday, May 1, 2008

D more »

Heading to JavaOne 2008

Posted Tuesday, April 29, 2008

I more »
Read More Blog Entries »

Presentations

Building JSF components with the Ajax4jsf CDK

This talk introduces the Ajax4jsf CDK, demonstrating how to setup a new JSF component project, how to author the component using the CDK descriptors, and how to bundle the component for use in another application. The resource framework in Ajax4jsf is als more »

Stacking the deck by integrating Spring beans and Seam

By attending this talk, developers can suppress their anxiety about the coexistence of the two frameworks, open their eyes to the potential that each boasts, and learn how to combine them to create a more powerful tool for their development toolbox. more »

Conversations and pageflows in JSF

This session presents the approach to conversations and pageflows taken by each of JBoss Seam, Spring Web Flow, and Apache Orchestra frameworks. It addresses the pros and cons of each option with the primary focus being on how well they fit with JSF. more »

Building JSF components with the Ajax4jsf CDK

close

Dan Allen By Dan Allen
This talk introduces the Ajax4jsf CDK, demonstrating how to setup a new JSF component project, how to author the component using the CDK descriptors, and how to bundle the component for use in another application. The resource framework in Ajax4jsf is also covered, which simplifies the task of serving JavaScript, CSS, and images necessary to support rich components.


For The pains of developing JSF components are fairly well documented. The extensible design of JSF components results in a plethora of required configuration files and classes which are reminiscent of EJB 2 artifacts (and no more fun to development and maintain). What's worse is that the rendered markup must be written in Java code, a step backwards towards Java servlets. Fortunately, the Ajax4jsf Component Development Kit (CDK) automates the task of creating the UI component and renderer classes from a single, descriptive XML configuration file and an accompanying JSP-style template. The Ajax4jsf CDK, a module of the RichFaces project, is a Maven 2-based development environment that takes away the monotonous coding and complexities of developing JSF components for both JSP and Facelets.

Stacking the deck by integrating Spring beans and Seam

close

Dan Allen By Dan Allen
By attending this talk, developers can suppress their anxiety about the coexistence of the two frameworks, open their eyes to the potential that each boasts, and learn how to combine them to create a more powerful tool for their development toolbox.



The Spring Framework and JBoss Seam are both lightweight inversion of control (IoC) and aspect-oriented (AOP) containers that champion the POJO programming model, though with slight variations. Each framework offers a dependency injection (DI) mechanism, ORM integration, declarative transactions, web service clients and endpoints, asynchronous messaging support, and other parallel integrations. The apparent overlap in the goals and features of these two frameworks has bred staunch competition amongst them, causing sparks to fly at times. This situation leaves the developer feeling conflicted as to which framework to employ and master. The choice, however, is not an exclusive one. In the dog eat dog world of today's technology market, the opportunity to create a federation between application frameworks is often overlooked. Spring and Seam share this symbiosis. POJO programming, which is endorsed by both frameworks, yields reusable objects that are not tied to infrastructure services and can thus be used in standalone environments. For Spring classes, that alternate environment can be a Seam application. This session will demonstrate how it is possible to take advantage of the vast, capable, and mature Spring APIs from within a Seam application, how Seam can leverage existing Spring components, and how Seam can contribute its capabilities back to the Spring container. Finally, this session will demonstrate how Spring and Seam can share resources, namely ORM persistence contexts and global transactions. This session hopes to raise awareness of the benefits of this union.

Conversations and pageflows in JSF

close

Dan Allen By Dan Allen
This session presents the approach to conversations and pageflows taken by each of JBoss Seam, Spring Web Flow, and Apache Orchestra frameworks. It addresses the pros and cons of each option with the primary focus being on how well they fit with JSF.


Not to long ago, the web came out of its shell and become social. I'm not talking about social networking sites, but rather communication between individual page views. JBoss Seam, Spring Web Flow, and Apache Orchestra all introduce a conversation context whose purpose is to maintain state that pertains to a use case across a series of pages.

Conversations help ween developers off of the HTTP session, being a far more attractive option because their life cycles can be managed independently from one another. They also last on the order of minutes rather than hours, reducing load on the memory footprint on the server. In addition to a long-running context, conversations can be combined with pageflows offered by each framework, which constrain a user's navigation path to predefined sequence. As such, pageflows can help reduce the complexity of navigation in an application.