SeamFramework.orgCommunity Documentation

Seam - Contextual Components

A Framework for Enterprise Java

2.0.3.CR1


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. The contextual component model
4.1. Seam contexts
4.1.1. Stateless context
4.1.2. Event context
4.1.3. Page context
4.1.4. Conversation context
4.1.5. Session context
4.1.6. Business process context
4.1.7. Application context
4.1.8. Context variables
4.1.9. Context search priority
4.1.10. Concurrency model
4.2. Seam components
4.2.1. Stateless session beans
4.2.2. Stateful session beans
4.2.3. Entity beans
4.2.4. JavaBeans
4.2.5. Message-driven beans
4.2.6. Interception
4.2.7. Component names
4.2.8. Defining the component scope
4.2.9. Components with multiple roles
4.2.10. Built-in components
4.3. Bijection
4.4. Lifecycle methods
4.5. Conditional installation
4.6. Logging
4.7. The Mutable interface and @ReadOnly
4.8. Factory and manager components
5. Configuring Seam components
5.1. Configuring components via property settings
5.2. Configuring components via components.xml
5.3. Fine-grained configuration files
5.4. Configurable property types
5.5. Using XML Namespaces
6. Events, interceptors and exception handling
6.1. Seam events
6.2. Page actions
6.3. Page parameters
6.3.1. Mapping request parameters to the model
6.4. Propagating request parameters
6.5. Conversion and Validation
6.6. Navigation
6.7. Fine-grained files for definition of navigation, page actions and parameters
6.8. Component-driven events
6.9. Contextual events
6.10. Seam interceptors
6.11. Managing exceptions
6.11.1. Exceptions and transactions
6.11.2. Enabling Seam exception handling
6.11.3. Using annotations for exception handling
6.11.4. Using XML for exception handling
6.11.5. Some common exceptions
7. Conversations and workspace management
7.1. Seam's conversation model
7.2. Nested conversations
7.3. Starting conversations with GET requests
7.4. Using <s:link> and <s:button>
7.5. Success messages
7.6. Natural conversation ids
7.7. Creating a natural conversation
7.8. Redirecting to a natural conversation
7.9. Workspace management
7.9.1. Workspace management and JSF navigation
7.9.2. Workspace management and jPDL pageflow
7.9.3. The conversation switcher
7.9.4. The conversation list
7.9.5. Breadcrumbs
7.10. Conversational components and JSF component bindings
7.11. Concurrent calls to conversational components
7.11.1. RichFaces Ajax
8. Pageflows and business processes
8.1. Pageflow in Seam
8.1.1. The two navigation models
8.1.2. Seam and the back button
8.2. Using jPDL pageflows
8.2.1. Installing pageflows
8.2.2. Starting pageflows
8.2.3. Page nodes and transitions
8.2.4. Controlling the flow
8.2.5. Ending the flow
8.2.6. Pageflow composition
8.3. Business process management in Seam
8.4. Using jPDL business process definitions
8.4.1. Installing process definitions
8.4.2. Initializing actor ids
8.4.3. Initiating a business process
8.4.4. Task assignment
8.4.5. Task lists
8.4.6. Performing a task
9. Seam and Object/Relational Mapping
9.1. Introduction
9.2. Seam managed transactions
9.2.1. Disabling Seam-managed transactions
9.2.2. Configuring a Seam transaction manager
9.2.3. Transaction synchronization
9.3. Seam-managed persistence contexts
9.3.1. Using a Seam-managed persistence context with JPA
9.3.2. Using a Seam-managed Hibernate session
9.3.3. Seam-managed persistence contexts and atomic conversations
9.4. Using the JPA "delegate"
9.5. Using EL in EJB-QL/HQL
9.6. Using Hibernate filters
10. JSF form validation in Seam
11. Groovy integration
11.1. Groovy introduction
11.2. Writing Seam applications in Groovy
11.2.1. Writing Groovy components
11.2.2. seam-gen
11.3. Deployment
11.3.1. Deploying Groovy code
11.3.2. Native .groovy file deployment at development time
11.3.3. seam-gen
12. The Seam Application Framework
12.1. Introduction
12.2. Home objects
12.3. Query objects
12.4. Controller objects
13. Seam and JBoss Rules
13.1. Installing rules
13.2. Using rules from a Seam component
13.3. Using rules from a jBPM process definition
14. Security
14.1. Overview
14.1.1. Which mode is right for my application?
14.2. Requirements
14.3. Disabling Security
14.4. Authentication
14.4.1. Configuration
14.4.2. Writing an authentication method
14.4.3. Writing a login form
14.4.4. Simplified Configuration - Summary
14.4.5. Handling Security Exceptions
14.4.6. Login Redirection
14.4.7. HTTP Authentication
14.4.8. Advanced Authentication Features
14.5. Error Messages
14.6. Authorization
14.6.1. Core concepts
14.6.2. Securing components
14.6.3. Security in the user interface
14.6.4. Securing pages
14.6.5. Securing Entities
14.7. Writing Security Rules
14.7.1. Permissions Overview
14.7.2. Configuring a rules file
14.7.3. Creating a security rules file
14.8. SSL Security
14.9. CAPTCHA
14.9.1. Configuring the CAPTCHA Servlet
14.9.2. Adding a CAPTCHA to a form
14.9.3. Customising the CAPTCHA algorithm
14.10. Security Events
14.11. Run As
14.12. Extending the Identity component
15. Internationalization, localization and themes
15.1. Internationalizing your app
15.1.1. Application server configuration
15.1.2. Translated application strings
15.1.3. Other encoding settings
15.2. Locales
15.3. Labels
15.3.1. Defining labels
15.3.2. Displaying labels
15.3.3. Faces messages
15.4. Timezones
15.5. Themes
15.6. Persisting locale and theme preferences via cookies
16. Seam Text
16.1. Basic fomatting
16.2. Entering code and text with special characters
16.3. Links
16.4. Entering HTML
17. iText PDF generation
17.1. Using PDF Support
17.1.1. Creating a document
17.1.2. Basic Text Elements
17.1.3. Headers and Footers
17.1.4. Chapters and Sections
17.1.5. Lists
17.1.6. Tables
17.1.7. Document Constants
17.1.8. Configuring iText
17.2. Charting
17.3. Bar codes
17.4. Rendering Swing/AWT components
17.5. Further documentation
18. Email
18.1. Creating a message
18.1.1. Attachments
18.1.2. HTML/Text alternative part
18.1.3. Multiple recipients
18.1.4. Multiple messages
18.1.5. Templating
18.1.6. Internationalisation
18.1.7. Other Headers
18.2. Receiving emails
18.3. Configuration
18.3.1. mailSession
18.4. Meldware
18.5. Tags
19. Asynchronicity and messaging
19.1. Asynchronicity
19.1.1. Asynchronous methods
19.1.2. Asynchronous methods with the Quartz Dispatcher
19.1.3. Asynchronous events
19.2. Messaging in Seam
19.2.1. Configuration
19.2.2. Sending messages
19.2.3. Receiving messages using a message-driven bean
19.2.4. Receiving messages in the client
20. Caching
20.1. Using JBossCache in Seam
20.2. Page fragment caching
21. Web Services
21.1. Configuration and Packaging
21.2. Conversational Web Services
21.2.1. A Recommended Strategy
21.3. An example web service
22. Remoting
22.1. Configuration
22.2. The "Seam" object
22.2.1. A Hello World example
22.2.2. Seam.Component
22.2.3. Seam.Remoting
22.3. Evaluating EL Expressions
22.4. Client Interfaces
22.5. The Context
22.5.1. Setting and reading the Conversation ID
22.5.2. Remote calls within the current conversation scope
22.6. Batch Requests
22.7. Working with Data types
22.7.1. Primitives / Basic Types
22.7.2. JavaBeans
22.7.3. Dates and Times
22.7.4. Enums
22.7.5. Collections
22.8. Debugging
22.9. The Loading Message
22.9.1. Changing the message
22.9.2. Hiding the loading message
22.9.3. A Custom Loading Indicator
22.10. Controlling what data is returned
22.10.1. Constraining normal fields
22.10.2. Constraining Maps and Collections
22.10.3. Constraining objects of a specific type
22.10.4. Combining Constraints
22.11. JMS Messaging
22.11.1. Configuration
22.11.2. Subscribing to a JMS Topic
22.11.3. Unsubscribing from a Topic
22.11.4. Tuning the Polling Process
23. Seam and the Google Web Toolkit
23.1. Configuration
23.2. Preparing your component
23.3. Hooking up a GWT widget to the Seam component
23.4. GWT Ant Targets
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. Seam on OC4J
33.1. Installation and operation of OC4J
33.2. The jee5/booking example
33.2.1. Booking Example Dependencies
33.2.2. Configuration file changes
33.2.3. Building the jee5/booking example
33.3. Deploying the Seam application to OC4J
33.4. Deploying an application created using seam-gen to OC4J
33.4.1. Generating a basic seam-gen application
33.4.2. Changes needed for deployment to OC4J
33.4.3. Building and deploying the seam-gen'd application to OC4J
33.4.4. Extending example with reverse engineered CRUD and Drools
33.5. Finishing up
34. Seam on BEA's Weblogic
34.1. Installation and operation of Weblogic
34.1.1. Installing 10.0.MP1
34.1.2. Creating your Weblogic domain
34.1.3. How to Start/Stop/Access your domain
34.2. The jee5/booking Example
34.2.1. EJB3 Issues with Weblogic
34.2.2. Getting the jee5/booking Working
34.3. The jpa booking example
34.3.1. Building and deploying jpa booking example
34.3.2. What's different with Weblogic 10.x
34.4. Deploying an application created using seam-gen on Weblogic 10.x
34.4.1. Running seam-gen setup
34.4.2. What to change for Weblogic 10.X
34.4.3. Building and Deploying your application
35. Seam on IBM's Websphere
35.1. Websphere environment and deployment information
35.1.1. Installation versions and tips
35.1.2. Required custom properties
35.2. The jee5/booking example
35.2.1. Configuration file changes
35.2.2. Building the jee5/booking example
35.2.3. Deploying the application to Websphere
35.3. The jpa booking example
35.3.1. Building the jpa example
35.3.2. Deploying the jpa example
35.3.3. Whats different for Websphere 6.1
35.4. Deploying an application created using seam-gen on Websphere 6.1.0.13
35.4.1. Running seam-gen Setup
35.4.2. Changes needed for deployment to Websphere
36. Dependencies
36.1. Project Dependencies
36.1.1. Core
36.1.2. RichFaces
36.1.3. Seam Mail
36.1.4. Seam PDF
36.1.5. JBoss Rules
36.1.6. JBPM
36.1.7. GWT
36.1.8. Spring
36.1.9. Groovy
36.2. Dependency Management using Maven