In Seam Framework, Second Edition, the authors of the leading guide to Seam programming have systematically updated their text to reflect the major improvements introduced with Seam 2.x. This author team–all key Seam project contributors–teach Seam 2.x through detailed example applications that reveal how Seam simplifies many tasks that were previously difficult or impractical. Their robust descriptions are complemented by in-depth feature discussions that demonstrate how to use Seam’s power to the fullest. Whether you’re new to Seam programming or a seasoned Seam developer who wants to achieve deeper mastery of Seam 2.x, this book will be an indispensable resource.
Using improvements to Seam’s conversation model, transaction management, and other features
Enhancing security, performing end-to-end validation, and providing custom exception pages
Using Quartz to execute timer jobs in your application
Generating bookmarkable RESTful Web pages the easy way
Developing highly scalable applications with Seam 2.x’s new multilayer caching
Simplifying development with Groovy, the scripting language that runs directly on the JVM
Using jBPM business processes to improve page flow
Previewing Web Beans (JSR-299), the future core of Seam that will transform Java EE Web development
Review By: Harmon Avera, Jr. 09/03/2009This fast-paced book is written towards the experienced Java developer who wants to understand some of the framework design theory, know where using the framework is appropriate, and grasp the nuts-and-bolts of its operation. At over 420 pages, the book is not a quick read, but it provides a well written and balanced mix of code examples with explanatory text.
The authors maintain an approachable style that is clear and enthusiastic. The major book sections cover the Seam approach to stateful Web applications, integrating presentation (Web) components with persistence (data) components in an enterprise Web application, AJAX support, business processes/rules, testing, production deployment, and how Seam can work with emerging technologies. It was disappointing that only fifteen pages were specifically devoted to testing Seam-based applications. Those pages gave just a taste of how the framework is used in unit-testing individual objects and running integration tests that can simulate JSF interactions or a transactional data source. Mostly, test design and implementation is left as an ":exercise for the interested reader."
Software frameworks can help programmers be more productive by allowing us to concentrate on the unique areas that add value for a business or customer. My first development frameworks were for character-based screen layout and data entry. Today, most of my development uses Java-based frameworks for testing (JUnit, TestNG), persistence (Hibernate), and dependency injection (Spring). The book Seam Framework, 2nd Edition by Yuan, Orshalick, and Heute is an extensive, detailed user guide to another high-level Java framework designed to:
Integrate/Enhance the existing Enterprise JavaBean (EJB) and JavaServer Faces (JSF) frameworks
Natively support stateful Web applications
Optimally support AJAX-based Web 2.0 applications
Wire Java objects together and use container services to form applications
Enable unit and integration level testing within the framework
My experience with using Seam got off to a rocky start but ended positively. The initial hurdle for me was setting up the Seam ecosystem. After several false starts with Windows, Ubuntu Linux server, and RedHat enterprise server, I finally set up exactly the same environment used in the book. Once that was correct, I could start JBoss, build and deploy the code examples, and run the tests. Further experiments went much smoother; I created more sophisticated tests for the sample code and built and tested small portions of my current work applications using the Seam framework.
Readers should think of this book as a well-written shop manual. There is enough theory of operation to understand what the tool is intended to do and plenty of chapters on how to use the tool to perform different tasks. I would recommend reading the book to learn about the Seam framework, then keeping the book handy for reference when using Seam in actual applications. It works very well for both purposes.