Part 3. Seam’s state management – Seam in Action

Part 3. Seam’s state management

Part 1 presented the motivation for why Seam was created and demonstrated ways it simplifies development of web applications. You used seam-gen to quickly put together a Seam-based application and agile development environment. Part 2 got into the guts of Seam by teaching you to define and configure components and getting them to communicate. What sets Seam apart from other web-oriented frameworks is its focus on state management. This term may not mean much to you right now, but trust that it plays a key role in what you’ll learn to master in the next three chapters: conversations, page flows, the extended persistence context, application transactions, and entity home components.

Chapter 7 introduces conversations as a way to effectively string together requests. You define conversation boundaries using a familiar declarative approach. You also learn to orchestrate a conversation with a page flow and to let the user multitask using workspaces.

Chapter 8 puts conversations aside initially to cover Java persistence, the ORM mechanism that translates Java objects to and from database records. The end of the chapter sees a return to state management when the extended persistence context in EJB 3 is introduced. This construct ensures persistent objects remain managed so that updates to the database require no programming, related objects can be fetched on demand, and database reads are kept to a minimum.

In chapter 9, you learn that conversations provide the perfect vehicle for extending the persistence context. This chapter introduces Seam-managed persistence as an alternative to its complement in Java EE, with a number of extensions weaved in. More important, propagation of the persistence context is handled transparently, a relief from complex rules in EJB 3. Seam also offers a unique approach to transactions by wrapping them around each request and facilitating application transactions that span multiple requests.

In chapter 10, you get to bring together everything you have learned about Seam and perform rapid development using the Seam Application Framework. This chapter helps you appreciate how much you have matured as a Seam developer throughout this part.