Seam - Contextual Components

A Framework for Java EE 5

1.0.CR2


Table of Contents

Introduction to JBoss Seam
1. Seam Tutorial
1.1. Try the examples
1.1.1. Running the examples on JBoss AS
1.1.2. Running the examples on Tomcat
1.1.3. Running the example tests
1.2. Your first Seam application: the registration example
1.2.1. Understanding the code
1.2.1.1. The entity bean: User.java
1.2.1.2. The stateless session bean class: RegisterAction.java
1.2.1.3. The session bean local interface: Register.java
1.2.1.4. The web deployment description: web.xml
1.2.1.5. The JSF configration: faces-config.xml
1.2.1.6. The EJB deployment descriptor: ejb-jar.xml
1.2.1.7. The EJB persistence deployment descriptor: persistence.xml
1.2.1.8. The view: register.jsp and registered.jsp
1.2.1.9. The EAR deployment descriptor: application.xml
1.2.2. How it works
1.3. Clickable lists in Seam: the messages example
1.3.1. Understanding the code
1.3.1.1. The entity bean: Message.java
1.3.1.2. The stateful session bean: MessageManagerBean.java
1.3.1.3. The session bean local interface: MessageManager.java
1.3.1.4. The view: messages.jsp
1.3.2. How it works
1.4. Seam and jBPM: the todo list example
1.4.1. Understanding the code
1.4.2. How it works
1.5. Seam pageflow: the numberguess example
1.5.1. Understanding the code
1.5.2. How it works
1.6. A complete Seam application: the Hotel Booking example
1.6.1. Introduction
1.6.2. Overview of the booking example
1.6.3. Understanding Seam conversations
1.6.4. The Seam Debug Page
1.7. A complete application featuring Seam and jBPM: the DVD Store example
1.8. A complete application featuring Seam workspace management: the Issue Tracker example
1.9. An example of Seam with Hibernate: the Hibernate Booking example
1.10. A RESTful Seam application: the Blog example
1.10.1. Using "pull"-style MVC
1.10.2. Bookmarkable search results page
1.10.3. Using "push"-style MVC in a RESTful application
2. The contextual component model
2.1. Seam contexts
2.1.1. Stateless context
2.1.2. Event context
2.1.3. Page context
2.1.4. Conversation context
2.1.5. Session context
2.1.6. Business process context
2.1.7. Application context
2.1.8. Context variables
2.1.9. Context search priority
2.2. Seam components
2.2.1. Stateless session beans
2.2.2. Stateful session beans
2.2.3. Entity beans
2.2.4. JavaBeans
2.2.5. Interception
2.2.6. Component names
2.2.7. Defining the component scope
2.2.8. Components with multiple roles
2.2.9. Built-in components
2.2.10. Configuring components
2.3. Bijection
2.4. Seam interceptors
2.5. Seam events
2.5.1. Page actions
2.5.2. Component-driven events
3. Conversations and workspace management
3.1. Seam's conversation model
3.2. Nested conversations
3.3. Starting conversations with GET requests
3.4. Using <s:link>
3.5. Success messages
3.6. Workspace management
3.6.1. Workspace management and JSF navigation
3.6.2. Workspace management and jPDL pageflow
3.6.3. The conversation switcher
3.6.4. The conversation list
3.6.5. Breadcrumbs
3.7. Seam and AJAX
3.8. Seam and SOAP
4. Pageflows and business processes
4.1. Pageflow in Seam
4.1.1. The two navigation models
4.1.2. Seam and the back button
4.2. Using jPDL pageflows
4.2.1. Installing pageflows
4.2.2. Starting pageflows
4.2.3. Page nodes and transitions
4.2.4. Controlling the flow
4.2.5. Ending the flow
4.3. Business process management in Seam
4.4. Using jPDL business process definitions
4.4.1. Installing process definitions
4.4.2. Initializing actor ids
4.4.3. Initiating a business brocess
4.4.4. Task assignment
4.4.5. Task lists
4.4.6. Performing a task
5. Internationalization
5.1. Locales
5.2. Labels
5.3. Faces messages
6. Remoting
6.1. Configuration
6.2. The "Seam" object
6.2.1. A Hello World example
6.2.2. Seam.Component
6.2.2.1. Seam.Component.newInstance()
6.2.2.2. Seam.Component.getInstance()
6.2.2.3. Seam.Component.getComponentName()
6.2.3. Seam.Remoting
6.2.3.1. Seam.Remoting.createType()
6.2.3.2. Seam.Remoting.getTypeName()
6.3. Client Interfaces
6.4. The Context
6.4.1. Setting and reading the Conversation ID
6.5. Batch Requests
6.6. Working with Data types
6.6.1. Primitives / Basic Types
6.6.1.1. String
6.6.1.2. Number
6.6.1.3. Boolean
6.6.2. JavaBeans
6.6.3. Dates and Times
6.6.4. Enums
6.6.5. Collections
6.6.5.1. Bags
6.6.5.2. Maps
6.7. Debugging
6.8. The Loading Message
6.8.1. Changing the message
6.8.2. Hiding the loading message
6.8.3. A Custom Loading Indicator
6.9. JMS Messaging
6.9.1. Subscribing to a JMS Topic
6.9.2. Unsubscribing from a Topic
6.9.3. Tuning the Polling Process
7. Configuring Seam
7.1. Basic Seam configuration
7.1.1. Integrating Seam with JSF and your servlet container
7.1.2. Integrating Seam with your EJB container
7.1.3. Enabling conversation propagation with redirects
7.2. Configuring Seam in Java EE 5
7.2.1. Packaging
7.3. Configuring Seam with the JBoss Embeddable EJB3 container
7.3.1. Installing the Embeddable EJB3 container
7.3.2. Configuring a datasource with the Embeddable EJB3 container
7.3.3. Packaging
7.4. Seam managed transactions
7.4.1. Enabling Seam-managed transactions
7.4.2. Using a Seam-managed persistence context
7.5. Configuring Seam with Hibernate in Java EE
7.5.1. Boostrapping Hibernate in Seam
7.5.2. Using a Seam-managed Hibernate Session
7.5.3. Packaging
7.6. Configuring Seam with Hibernate in Java SE
7.6.1. Using Hibernate and the JBoss Microcontainer
7.6.2. Packaging
7.7. Configuring jBPM in Seam
7.7.1. Packaging
7.8. Configuring Seam in a Portal
8. Seam annotations
8.1. Annotations for component definition
8.2. Annotations for bijection
8.3. Annotations for component lifecycle methods
8.4. Annotations for context demarcation
8.5. Annotations for transaction demarcation
8.6. Annotations for validation
8.7. Annotations for Seam Remoting
8.8. Annotations for Seam interceptors
8.9. Annotations for use with JSF dataTable
9. Built-in Seam components
9.1. Context injection components
9.2. Components for internationalization
9.3. Components for controlling conversations
9.4. jBPM-related components
9.5. Infrastructural components
9.6. Security-related components
9.7. Special components
10. Testing Seam applications
10.1. Unit testing Seam components
10.2. Integration testing Seam applications
11. Seam tools
11.1. jBPM designer and viewer
11.1.1. Business process designer
11.1.2. Pageflow viewer
11.2. CRUD-application generator
11.2.1. Creating a Hibernate configuration file
11.2.2. Creating a Hibernate Console configuration
11.2.3. Reverse engineering and code generation
11.2.3.1. Code Generation Launcher
11.2.3.2. Exporters
11.2.3.3. Generating and using the code