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.
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.
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.