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