contents
foreword
preface
acknowledgments
about this book
about the cover illustration
Part 1 Teeing off with Seam
- 1 Seam unifies Java EE
- 1.1 Which framework should I use?
- 1.2 Seam’s approach to unification
- 1.3 Your first swings with Seam
- 1.4 Seam’s core competencies
- 1.5 Summary
- 2 Putting seam-gen to work
- 2.1 The Open 18 prototype
- 2.2 Letting seam-gen do the initial work
- 2.3 Kick off your project with seam-gen
- 2.4 Deploying the project to JBoss AS
- 2.5 Show and tell, change, and repeat
- 2.6 Rapidly developing a seam-gen project
- 2.7 Summary
Part 2 Seam fundamentals
- 3 The Seam life cycle
- 3.1 Exploring how Seam participates in a request
- 3.2 The JSF life cycle sans Seam
- 3.3 Seam’s page-oriented life-cycle additives
- 3.4 Combining page actions with navigation
- 3.5 The JSF life cycle with Seam
- 3.6 A try-catch block around the life cycle
- 3.7 Summary
- 4 Components and contexts
- 4.1 Seam’s contextual naming container
- 4.2 Sorting out components
- 4.3 Defining components using annotations
- 4.4 A comprehensive component example
- 4.5 A component’s life
- 4.6 Using EJB 3 session beans in Seam
- 4.7 Accessing components
- 4.8 Summary
- 5 The Seam component descriptor
- 5.1 Defining components using XML
- 5.2 XML namespaces in the component descriptor
- 5.3 Configuring component properties
- 5.4 Component definitions vs. component configuration
- 5.5 Configuring and enabling built-in components
- 5.6 Summary
- 6 Absolute inversion of control
- 6.1 Bijection: dependency injection evolved
- 6.2 Dynamic dependency @In-jection
- 6.3 @Out-jecting context variables
- 6.4 Bypassing bijection
- 6.5 Component events
- 6.6 Custom method interceptors
- 6.7 Factory and manager components
- 6.8 Summary
Part 3 Seam’s state management
- 7 The conversation: Seam’s unit of work
- 7.1 Learning to appreciate conversational state
- 7.2 The conversation context
- 7.3 Establishing conversation boundaries
- 7.4 Putting the conversation aside
- 7.5 Switching between conversations
- 7.6 Driving the conversation with a page flow
- 7.7 Ad hoc conversations
- 7.8 Summary
- 8 Understanding Java persistence
- 8.1 Java persistence principles
- 8.2 Entities and relationships
- 8.3 The persistence unit
- 8.4 The persistence manager
- 8.5 Transactions
- 8.6 Managing persistence in the enterprise
- 8.7 Choosing between JPA and Hibernate
- 8.8 Summary
- 9 Seam-managed persistence and transactions
- 9.1 Getting persistence context management right
- 9.2 Enhancing the capabilities of the persistence manager
- 9.3 Setting up a persistence unit in Seam
- 9.4 Seam’s transaction support
- 9.5 Summary
- 10 Rapid Seam development
- 10.1 A framework within a framework
- 10.2 Stateful CRUD using the Home component
- 10.3 Providing feedback
- 10.4 Smarter queries with the Query component
- 10.5 Summary
Part 4 Sinking the business requirements
- 11 Securing Seam applications
- 11.1 Authentication jump-start
- 11.2 Securing pages
- 11.3 Role-based authorization
- 11.4 Rule-based authorization using Drools
- 11.5 Separating the computers from the humans
- 11.6 Summary
- 12 Ajax and JavaScript remoting
- 12.1 Using Ajax with JSF
- 12.3 Partial form submits
- 12.4 Ajax Push with ICEfaces
- 12.5 JavaScript remoting to Seam
- 12.6 Conversational remoting calls
- 12.7 Responding to GWT remoting calls
- 12.8 Summary
- 13 File, rich rendering, and email support
- 13.1 Uploading files and rendering dynamic images
- 13.2 PDF generation with iText
- 13.3 Quick and easy charting with JFreeChart
- 13.4 Composing email the Seam way
- 13.5 Customizing the UI with resource bundles
- 13.6 Summary
-
appendix A: Seam starter set
resources
index
 
- free online chapters
 
- 14 Managing the business process
- 15 Spring integration