Seam - Contextual Components

A Framework for Enterprise Java

2.0.2-FP


Introduction to JBoss Seam
1. Contribute to 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.2. How it works
1.3. Clickable lists in Seam: the messages example
1.3.1. Understanding the code
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 UI control library
1.6.5. The Seam Debug Page
1.7. A complete application featuring Seam and jBPM: the DVD Store example
1.8. An example of Seam with Hibernate: the Hibernate Booking example
1.9. A RESTful Seam application: the Blog example
1.9.1. Using "pull"-style MVC
1.9.2. Bookmarkable search results page
1.9.3. Using "push"-style MVC in a RESTful application
2. Getting started with Seam, using seam-gen
2.1. Before you start
2.2. Setting up a new Eclipse project
2.3. Creating a new action
2.4. Creating a form with an action
2.5. Generating an application from an existing database
2.6. Generating an application from existing JPA/EJB3 entities
2.7. Deploying the application as an EAR
2.8. Seam and incremental hot deployment
2.9. Using Seam with JBoss 4.0
2.9.1. Install JBoss 4.0
2.9.2. Install the JSF 1.2 RI
3. Getting started with Seam, using JBoss Tools
3.1. Before you start
3.2. Setting up a new Seam project
3.3. Creating a new action
3.4. Creating a form with an action
3.5. Generating an application from an existing database
3.6. Seam and incremental hot deployment with JBoss Tools
4. Migrating from Seam 1.2 to Seam 2
4.1. Creating a new project skeleton using seam-gen
4.2. In place migration
4.2.1. Migrating to JSF 1.2
4.2.2. Migrating web.xml and faces-config.xml to Seam 2
4.2.3. Deployment structure changes
4.2.4. Migration to JBoss Embedded
4.3. Updating your code
4.3.1. Built-in Component changes
4.3.2. Annotation changes in Seam 2
4.3.3. Other changes needed to components.xml
4.3.4. Migration to jBPM 3.2
4.3.5. Migration to RichFaces 3.1
4.3.6. Changes to Seam UI
5. The contextual component model
5.1. Seam contexts
5.1.1. Stateless context
5.1.2. Event context
5.1.3. Page context
5.1.4. Conversation context
5.1.5. Session context
5.1.6. Business process context
5.1.7. Application context
5.1.8. Context variables
5.1.9. Context search priority
5.1.10. Concurrency model
5.2. Seam components
5.2.1. Stateless session beans
5.2.2. Stateful session beans
5.2.3. Entity beans
5.2.4. JavaBeans
5.2.5. Message-driven beans
5.2.6. Interception
5.2.7. Component names
5.2.8. Defining the component scope
5.2.9. Components with multiple roles
5.2.10. Built-in components
5.3. Bijection
5.4. Lifecycle methods
5.5. Conditional installation
5.6. Logging
5.7. The Mutable interface and @ReadOnly
5.8. Factory and manager components
6. Configuring Seam components
6.1. Configuring components via property settings
6.2. Configuring components via components.xml
6.3. Fine-grained configuration files
6.4. Configurable property types
6.5. Using XML Namespaces
7. Events, interceptors and exception handling
7.1. Seam events
7.2. Page actions
7.3. Page parameters
7.3.1. Mapping request parameters to the model
7.4. Propagating request parameters
7.5. Conversion and Validation
7.6. Navigation
7.7. Fine-grained files for definition of navigation, page actions and parameters
7.8. Component-driven events
7.9. Contextual events
7.10. Seam interceptors
7.11. Managing exceptions
7.11.1. Exceptions and transactions
7.11.2. Enabling Seam exception handling
7.11.3. Using annotations for exception handling
7.11.4. Using XML for exception handling
7.11.5. Some common exceptions
8. Conversations and workspace management
8.1. Seam's conversation model
8.2. Nested conversations
8.3. Starting conversations with GET requests
8.4. Using <s:link> and <s:button>
8.5. Success messages
8.6. Natural conversation ids
8.7. Creating a natural conversation
8.8. Redirecting to a natural conversation
8.9. Workspace management
8.9.1. Workspace management and JSF navigation
8.9.2. Workspace management and jPDL pageflow
8.9.3. The conversation switcher
8.9.4. The conversation list
8.9.5. Breadcrumbs
8.10. Conversational components and JSF component bindings
8.11. Concurrent calls to conversational components
8.11.1. RichFaces Ajax
9. Pageflows and business processes
9.1. Pageflow in Seam
9.1.1. The two navigation models
9.1.2. Seam and the back button
9.2. Using jPDL pageflows
9.2.1. Installing pageflows
9.2.2. Starting pageflows
9.2.3. Page nodes and transitions
9.2.4. Controlling the flow
9.2.5. Ending the flow
9.2.6. Pageflow composition
9.3. Business process management in Seam
9.4. Using jPDL business process definitions
9.4.1. Installing process definitions
9.4.2. Initializing actor ids
9.4.3. Initiating a business process
9.4.4. Task assignment
9.4.5. Task lists
9.4.6. Performing a task
10. Seam and Object/Relational Mapping
10.1. Introduction
10.2. Seam managed transactions
10.2.1. Disabling Seam-managed transactions
10.2.2. Configuring a Seam transaction manager
10.2.3. Transaction synchronization
10.3. Seam-managed persistence contexts
10.3.1. Using a Seam-managed persistence context with JPA
10.3.2. Using a Seam-managed Hibernate session
10.3.3. Seam-managed persistence contexts and atomic conversations
10.4. Using the JPA "delegate"
10.5. Using EL in EJB-QL/HQL
10.6. Using Hibernate filters
11. JSF form validation in Seam
12. Groovy integration
12.1. Groovy introduction
12.2. Writing Seam applications in Groovy
12.2.1. Writing Groovy components
12.2.2. seam-gen
12.3. Deployment
12.3.1. Deploying Groovy code
12.3.2. Native .groovy file deployment at development time
12.3.3. seam-gen
13. The Seam Application Framework
13.1. Introduction
13.2. Home objects
13.3. Query objects
13.4. Controller objects
14. Seam and JBoss Rules
14.1. Installing rules
14.2. Using rules from a Seam component
14.3. Using rules from a jBPM process definition
15. Security
15.1. Overview
15.1.1. Which mode is right for my application?
15.2. Requirements
15.3. Disabling Security
15.4. Authentication
15.4.1. Configuration
15.4.2. Writing an authentication method
15.4.3. Writing a login form
15.4.4. Simplified Configuration - Summary
15.4.5. Handling Security Exceptions
15.4.6. Login Redirection
15.4.7. HTTP Authentication
15.4.8. Advanced Authentication Features
15.5. Error Messages
15.6. Authorization
15.6.1. Core concepts
15.6.2. Securing components
15.6.3. Security in the user interface
15.6.4. Securing pages
15.6.5. Securing Entities
15.7. Writing Security Rules
15.7.1. Permissions Overview
15.7.2. Configuring a rules file
15.7.3. Creating a security rules file
15.8. SSL Security
15.9. CAPTCHA
15.9.1. Configuring the CAPTCHA Servlet
15.9.2. Adding a CAPTCHA to a form
15.9.3. Customising the CAPTCHA algorithm
15.10. Security Events
15.11. Run As
15.12. Extending the Identity component
16. Internationalization, localization and themes
16.1. Internationalizing your app
16.1.1. Application server configuration
16.1.2. Translated application strings
16.1.3. Other encoding settings
16.2. Locales
16.3. Labels
16.3.1. Defining labels
16.3.2. Displaying labels
16.3.3. Faces messages
16.4. Timezones
16.5. Themes
16.6. Persisting locale and theme preferences via cookies
17. Seam Text
17.1. Basic fomatting
17.2. Entering code and text with special characters
17.3. Links
17.4. Entering HTML
18. iText PDF generation
18.1. Using PDF Support
18.1.1. Creating a document
18.1.2. Basic Text Elements
18.1.3. Headers and Footers
18.1.4. Chapters and Sections
18.1.5. Lists
18.1.6. Tables
18.1.7. Document Constants
18.1.8. Configuring iText
18.2. Charting
18.3. Bar codes
18.4. Rendering Swing/AWT components
18.5. Further documentation
19. Email
19.1. Creating a message
19.1.1. Attachments
19.1.2. HTML/Text alternative part
19.1.3. Multiple recipients
19.1.4. Multiple messages
19.1.5. Templating
19.1.6. Internationalisation
19.1.7. Other Headers
19.2. Receiving emails
19.3. Configuration
19.3.1. mailSession
19.4. Meldware
19.5. Tags
20. Asynchronicity and messaging
20.1. Asynchronicity
20.1.1. Asynchronous methods
20.1.2. Asynchronous methods with the Quartz Dispatcher
20.1.3. Asynchronous events
20.2. Messaging in Seam
20.2.1. Configuration
20.2.2. Sending messages
20.2.3. Receiving messages using a message-driven bean
20.2.4. Receiving messages in the client
21. Caching
21.1. Using JBossCache in Seam
21.2. Page fragment caching
22. Web Services
22.1. Configuration and Packaging
22.2. Conversational Web Services
22.2.1. A Recommended Strategy
22.3. An example web service
23. Remoting
23.1. Configuration
23.2. The "Seam" object
23.2.1. A Hello World example
23.2.2. Seam.Component
23.2.3. Seam.Remoting
23.3. Evaluating EL Expressions
23.4. Client Interfaces
23.5. The Context
23.5.1. Setting and reading the Conversation ID
23.5.2. Remote calls within the current conversation scope
23.6. Batch Requests
23.7. Working with Data types
23.7.1. Primitives / Basic Types
23.7.2. JavaBeans
23.7.3. Dates and Times
23.7.4. Enums
23.7.5. Collections
23.8. Debugging
23.9. The Loading Message
23.9.1. Changing the message
23.9.2. Hiding the loading message
23.9.3. A Custom Loading Indicator
23.10. Controlling what data is returned
23.10.1. Constraining normal fields
23.10.2. Constraining Maps and Collections
23.10.3. Constraining objects of a specific type
23.10.4. Combining Constraints
23.11. JMS Messaging
23.11.1. Configuration
23.11.2. Subscribing to a JMS Topic
23.11.3. Unsubscribing from a Topic
23.11.4. Tuning the Polling Process
24. Spring Framework integration
24.1. Injecting Seam components into Spring beans
24.2. Injecting Spring beans into Seam components
24.3. Making a Spring bean into a Seam component
24.4. Seam-scoped Spring beans
24.5. Using Spring PlatformTransactionManagement
24.6. Using a Seam Managed Persistence Context in Spring
24.7. Using a Seam Managed Hibernate Session in Spring
24.8. Spring Application Context as a Seam Component
24.9. Using a Spring TaskExecutor for @Asynchronous
25. Hibernate Search
25.1. Introduction
25.2. Configuration
25.3. Usage
26. Configuring Seam and packaging Seam applications
26.1. Basic Seam configuration
26.1.1. Integrating Seam with JSF and your servlet container
26.1.2. Using facelets
26.1.3. Seam Resource Servlet
26.1.4. Seam servlet filters
26.1.5. Integrating Seam with your EJB container
26.1.6. Don't forget!
26.2. Using Alternate JPA Providers
26.3. Configuring Seam in Java EE 5
26.3.1. Packaging
26.4. Configuring Seam in J2EE
26.4.1. Boostrapping Hibernate in Seam
26.4.2. Boostrapping JPA in Seam
26.4.3. Packaging
26.5. Configuring Seam in Java SE, without JBoss Embedded
26.6. Configuring Seam in Java SE, with JBoss Embedded
26.6.1. Installing Embedded JBoss
26.6.2. Packaging
26.7. Configuring jBPM in Seam
26.7.1. Packaging
26.8. Configuring SFSB and Session Timeouts in JBoss AS
26.9. Running Seam in a Portlet
27. Seam annotations
27.1. Annotations for component definition
27.2. Annotations for bijection
27.3. Annotations for component lifecycle methods
27.4. Annotations for context demarcation
27.5. Annotations for use with Seam JavaBean components in a J2EE environment
27.6. Annotations for exceptions
27.7. Annotations for Seam Remoting
27.8. Annotations for Seam interceptors
27.9. Annotations for asynchronicity
27.10. Annotations for use with JSF
27.10.1. Annotations for use with dataTable
27.11. Meta-annotations for databinding
27.12. Annotations for packaging
27.13. Annotations for integrating with the servlet container
28. Built-in Seam components
28.1. Context injection components
28.2. Utility components
28.3. Components for internationalization and themes
28.4. Components for controlling conversations
28.5. jBPM-related components
28.6. Security-related components
28.7. JMS-related components
28.8. Mail-related components
28.9. Infrastructural components
28.10. Miscellaneous components
28.11. Special components
29. Seam JSF controls
29.1. Tags
29.1.1. Navigation Controls
29.1.2. Converters and Validators
29.1.3. Formatting
29.1.4. Seam Text
29.1.5. Dropdowns
29.1.6. Other
29.2. Annotations
30. JBoss EL
30.1. Parameterized Expressions
30.1.1. Usage
30.1.2. Limitations and Hints
30.2. Projection
31. Testing Seam applications
31.1. Unit testing Seam components
31.2. Integration testing Seam components
31.2.1. Using mocks in integration tests
31.3. Integration testing Seam application user interactions
31.3.1. Configuration
31.3.2. Using SeamTest with another test framework
31.3.3. Integration Testing with Mock Data
31.3.4. Integration Testing Seam Mail
32. Seam tools
32.1. jBPM designer and viewer
32.1.1. Business process designer
32.1.2. Pageflow viewer
33. Dependencies
33.1. Project Dependencies
33.1.1. Core
33.1.2. RichFaces
33.1.3. Seam Mail
33.1.4. Seam PDF
33.1.5. JBoss Rules
33.1.6. JBPM
33.1.7. GWT
33.1.8. Spring
33.1.9. Groovy
33.2. Dependency Management using Maven