Seam Framework: Experience The Evolution of Java EE
Buy it now
One Minute Bottom Line
As someone who didn't know much about Seam before picking up this book, I can guarantee that this will help your understanding of the technology, how to use it, and where to use it.
The book is well structured into 8 distinct parts, from getting started to a part on how to test out your Seam application. This structure, along with a convincing writing style, made this book enjoyable and easy to read. The second edition of the book has been updated to cover the improvements added in Seam 2.x.
Click here to download your free Seam Refcard now!
The book spans 34 chapters in total, with 8 parts making these chapters more digestable. Here I will give a brief overview of these parts
Part 1: Getting Started
This part is designed for the novice, and first introduces Seam to the reader, before bringing you on to code your own Hello World Seam application. Straight away you can see the advantages to using the framework. An explanation of Facelets and JSF follows - I found this quite interesting, as I didn't realise that Facelets was something that Seam used. This part also introduces you to the tools for Rapid Application Development with Seam. This kicks off with the command line tools provided with Seam, and then moves onto Netbeans and Eclipse support, including the JBoss Developer Studio.
Part 2: Stateful Applications Made Easy
This section explains why stateful components are essential for database driven web applications and shows how these components are created and managed. A chapter dealing with an introduction to stateful frameworks shows the benefits of this approach, with better performance and reducing boilerplate code among the main reasons for such a framework. Conversations (a state container) are introduced and explained through a booking example. This example is carried on as the idea of concurrent and nested conversations,as well as a workspace concept are introduced. This part of the book ends up with a chapter on Transactions and Persistence.
Part 3: Integrating Web and Data Components
Seam UI tags, annotations and ready to use components are the focus of this part of the book. As you get deeper into the book, you find that you are looking at more advanced, usable approaches to writing good web applications. An important part of this for me was the chapter that shows how to decouple your components using events - a key skill in writing maintainable, and easy to read code. There is also a chapter showing the Seam CRUD Application Framework, so you can write your own typical CRUD application. Another important concept that is dealt with here is how to ensure your application fails gracefully, before movin onto how to secure your application with Seam Security.
Part 4: AJAX Support
Part 5: Business Processes and Rules
Moving away from the data driven applications discussed up to now, this part of the book shows how the jBPM business process engine powers process-driven web applications. It shows how to annotate your Seam components to become part of a business process that requires actions from multiple users. First the rule-based security framework is introduced before showing how to integrate business rules into your web application and how to manage business processes.
Part 6: Testing Seam Applications
The importance of testing can never be understated, and I was happy to see that this book, focussed on web application development, gives time to explaining how to test your application. As a POJO based framework, Seam is easily testable, but it also provided it's own testing framework based on TestNG. This section also covers how to run out-of-container testing.
Part 7: Production Deployment
This part deals with how to use a production database, to tune for performance and scalability and how to setup a server cluster. Tomcat, JBoss AS and GlassFish are all considered here as your deployment target.
Part 8: Emerging Technologies
This part shows how to execute timer jobs using Quartz, how to utilize multilayer caching and how Groovy simplifies your development. There is also an introduction to Web Beans (JSR 299), which is to unify the web and EJB tiers of your application.
Finally there are four appendices at the end of the book. They look at installing and deploying JBoss AS, using example applications as templates, using Maven and direct access to the Hibernate API.