SeamFramework.orgCommunity Documentation

Seam - Contextual Components

A Framework for Enterprise Java

2.1.0.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. How should we design our conversational AJAX application?
7.11.2. Dealing with errors
7.11.3. 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. Writing your presentation layer using Apache Wicket
12.1. Adding Seam to your wicket application
12.1.1. Bijection
12.1.2. Orchestration
12.2. Setting up your project
12.2.1. Defining the Application
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.2. Disabling Security
15.3. Authentication
15.3.1. Configuring an Authenticator component
15.3.2. Writing an authentication method
15.3.3. Writing a login form
15.3.4. Configuration Summary
15.3.5. Remember Me
15.3.6. Handling Security Exceptions
15.3.7. Login Redirection
15.3.8. HTTP Authentication
15.3.9. Advanced Authentication Features
15.4. Identity Management
15.4.1. Configuring IdentityManager
15.4.2. JpaIdentityStore
15.4.3. LdapIdentityStore
15.4.4. Writing your own IdentityStore
15.4.5. Authentication with Identity Management
15.4.6. Using IdentityManager
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.6.6. Typesafe Permission Annotations
15.6.7. Typesafe Role Annotations
15.6.8. The Permission Authorization Model
15.6.9. RuleBasedPermissionResolver
15.6.10. PersistentPermissionResolver
15.7. Permission Management
15.7.1. PermissionManager
15.7.2. Permission checks for PermissionManager operations
15.8. SSL Security
15.8.1. Overriding the default ports
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.2. Charting
18.3. Bar codes
18.4. Rendering Swing/AWT components
18.5. Configuring iText
18.6. Further documentation
19. The Microsoft® Excel® spreadsheet application
19.1. The Microsoft® Excel® spreadsheet application support
19.2. Creating a simple workbook
19.3. Workbooks
19.4. Worksheets
19.5. Columns
19.6. Cells
19.6.1. Validation
19.6.2. Format masks
19.7. Formulas
19.8. Images
19.9. Hyperlinks
19.10. Headers and footers
19.11. Print areas and titles
19.12. Worksheet Commands
19.12.1. Grouping
19.12.2. Page breaks
19.12.3. Merging
19.13. Datatable exporter
19.14. Fonts and layout
19.14.1. Stylesheet links
19.14.2. Fonts
19.14.3. Borders
19.14.4. Background
19.14.5. Column settings
19.14.6. Cell settings
19.14.7. The datatable exporter
19.14.8. Layout examples
19.14.9. Limitations
19.15. Links and further documentation
20. RSS support
20.1. Installation
20.2. Generating feeds
20.3. Feeds
20.4. Entries
20.5. Links and further documentation
21. Email
21.1. Creating a message
21.1.1. Attachments
21.1.2. HTML/Text alternative part
21.1.3. Multiple recipients
21.1.4. Multiple messages
21.1.5. Templating
21.1.6. Internationalisation
21.1.7. Other Headers
21.2. Receiving emails
21.3. Configuration
21.3.1. mailSession
21.4. Meldware
21.5. Tags
22. Asynchronicity and messaging
22.1. Asynchronicity
22.1.1. Asynchronous methods
22.1.2. Asynchronous methods with the Quartz Dispatcher
22.1.3. Asynchronous events
22.1.4. Handling exceptions from asynchronous calls
22.2. Messaging in Seam
22.2.1. Configuration
22.2.2. Sending messages
22.2.3. Receiving messages using a message-driven bean
22.2.4. Receiving messages in the client
23. Caching
23.1. Using Caching in Seam
23.2. Page fragment caching
24. Web Services
24.1. Configuration and Packaging
24.2. Conversational Web Services
24.2.1. A Recommended Strategy
24.3. An example web service
24.4. RESTful HTTP webservices with RESTEasy
24.4.1. RESTEasy configuration and request serving
24.4.2. Resources and providers as Seam components
25. Remoting
25.1. Configuration
25.2. The "Seam" object
25.2.1. A Hello World example
25.2.2. Seam.Component
25.2.3. Seam.Remoting
25.3. Evaluating EL Expressions
25.4. Client Interfaces
25.5. The Context
25.5.1. Setting and reading the Conversation ID
25.5.2. Remote calls within the current conversation scope
25.6. Batch Requests
25.7. Working with Data types
25.7.1. Primitives / Basic Types
25.7.2. JavaBeans
25.7.3. Dates and Times
25.7.4. Enums
25.7.5. Collections
25.8. Debugging
25.9. The Loading Message
25.9.1. Changing the message
25.9.2. Hiding the loading message
25.9.3. A Custom Loading Indicator
25.10. Controlling what data is returned
25.10.1. Constraining normal fields
25.10.2. Constraining Maps and Collections
25.10.3. Constraining objects of a specific type
25.10.4. Combining Constraints
25.11. JMS Messaging
25.11.1. Configuration
25.11.2. Subscribing to a JMS Topic
25.11.3. Unsubscribing from a Topic
25.11.4. Tuning the Polling Process
26. Seam and the Google Web Toolkit
26.1. Configuration
26.2. Preparing your component
26.3. Hooking up a GWT widget to the Seam component
26.4. GWT Ant Targets
27. Spring Framework integration
27.1. Injecting Seam components into Spring beans
27.2. Injecting Spring beans into Seam components
27.3. Making a Spring bean into a Seam component
27.4. Seam-scoped Spring beans
27.5. Using Spring PlatformTransactionManagement
27.6. Using a Seam Managed Persistence Context in Spring
27.7. Using a Seam Managed Hibernate Session in Spring
27.8. Spring Application Context as a Seam Component
27.9. Using a Spring TaskExecutor for @Asynchronous
28. Hibernate Search
28.1. Introduction
28.2. Configuration
28.3. Usage
29. Configuring Seam and packaging Seam applications
29.1. Basic Seam configuration
29.1.1. Integrating Seam with JSF and your servlet container
29.1.2. Using facelets
29.1.3. Seam Resource Servlet
29.1.4. Seam servlet filters
29.1.5. Integrating Seam with your EJB container
29.1.6. Don't forget!
29.2. Using Alternate JPA Providers
29.3. Configuring Seam in Java EE 5
29.3.1. Packaging
29.4. Configuring Seam in J2EE
29.4.1. Boostrapping Hibernate in Seam
29.4.2. Boostrapping JPA in Seam
29.4.3. Packaging
29.5. Configuring Seam in Java SE, without JBoss Embedded
29.6. Configuring Seam in Java SE, with JBoss Embedded
29.6.1. Installing Embedded JBoss
29.6.2. Packaging
29.7. Configuring jBPM in Seam
29.7.1. Packaging
29.8. Configuring SFSB and Session Timeouts in JBoss AS
29.9. Running Seam in a Portlet
29.10. Deploying custom resources
30. Seam annotations
30.1. Annotations for component definition
30.2. Annotations for bijection
30.3. Annotations for component lifecycle methods
30.4. Annotations for context demarcation
30.5. Annotations for use with Seam JavaBean components in a J2EE environment
30.6. Annotations for exceptions
30.7. Annotations for Seam Remoting
30.8. Annotations for Seam interceptors
30.9. Annotations for asynchronicity
30.10. Annotations for use with JSF
30.10.1. Annotations for use with dataTable
30.11. Meta-annotations for databinding
30.12. Annotations for packaging
30.13. Annotations for integrating with the servlet container
31. Built-in Seam components
31.1. Context injection components
31.2. Utility components
31.3. Components for internationalization and themes
31.4. Components for controlling conversations
31.5. jBPM-related components
31.6. Security-related components
31.7. JMS-related components
31.8. Mail-related components
31.9. Infrastructural components
31.10. Miscellaneous components
31.11. Special components
32. Seam JSF controls
32.1. Tags
32.1.1. Navigation Controls
32.1.2. Converters and Validators
32.1.3. Formatting
32.1.4. Seam Text
32.1.5. Dropdowns
32.1.6. Other
32.2. Annotations
33. JBoss EL
33.1. Parameterized Expressions
33.1.1. Usage
33.1.2. Limitations and Hints
33.2. Projection
34. Testing Seam applications
34.1. Unit testing Seam components
34.2. Integration testing Seam components
34.2.1. Using mocks in integration tests
34.3. Integration testing Seam application user interactions
34.3.1. Configuration
34.3.2. Using SeamTest with another test framework
34.3.3. Integration Testing with Mock Data
34.3.4. Integration Testing Seam Mail
35. Seam tools
35.1. jBPM designer and viewer
35.1.1. Business process designer
35.1.2. Pageflow viewer
36. Seam on OC4J
36.1. Installation and operation of OC4J
36.2. The jee5/booking example
36.2.1. Booking Example Dependencies
36.2.2. Configuration file changes
36.2.3. Building the jee5/booking example
36.3. Deploying the Seam application to OC4J
36.4. Deploying an application created using seam-gen to OC4J
36.4.1. Generating a basic seam-gen application
36.4.2. Changes needed for deployment to OC4J
36.4.3. Building and deploying the seam-gen'd application to OC4J
36.4.4. Extending example with reverse engineered CRUD and Drools
36.5. Finishing up
37. Seam on BEA's Weblogic
37.1. Installation and operation of Weblogic
37.1.1. Installing 10.0.MP1
37.1.2. Creating your Weblogic domain
37.1.3. How to Start/Stop/Access your domain
37.2. The jee5/booking Example
37.2.1. EJB3 Issues with Weblogic
37.2.2. Getting the jee5/booking Working
37.3. The jpa booking example
37.3.1. Building and deploying jpa booking example
37.3.2. What's different with Weblogic 10.x
37.4. Deploying an application created using seam-gen on Weblogic 10.x
37.4.1. Running seam-gen setup
37.4.2. What to change for Weblogic 10.X
37.4.3. Building and Deploying your application
38. Seam on IBM's Websphere
38.1. Websphere environment and deployment information
38.1.1. Installation versions and tips
38.1.2. Required custom properties
38.2. The jee5/booking example
38.2.1. Configuration file changes
38.2.2. Building the jee5/booking example
38.2.3. Deploying the application to Websphere
38.3. The jpa booking example
38.3.1. Building the jpa example
38.3.2. Deploying the jpa example
38.3.3. Whats different for Websphere 6.1
38.4. Deploying an application created using seam-gen on Websphere 6.1.0.13
38.4.1. Running seam-gen Setup
38.4.2. Changes needed for deployment to Websphere
39. Seam on Glassfish application server
39.1. Glassfish environment and deployment information
39.1.1. Installation version and tips
39.2. The jee5/booking example
39.2.1. Deploying the application to Glassfish
39.3. The jpa booking example
39.3.1. Building the jpa example
39.3.2. Deploying the jpa example
39.3.3. What's different for Glassfish v2 UR2
39.4. Deploying an application generated by seam-gen on Glassfish v2 UR2
39.4.1. Running seam-gen Setup
39.4.2. Changes needed for deployment to Glassfish
40. Dependencies
40.1. JDK Dependencies
40.1.1. Sun's JDK 6 Considerations
40.2. Project Dependencies
40.2.1. Core
40.2.2. RichFaces
40.2.3. Seam Mail
40.2.4. Seam PDF
40.2.5. Seam Microsoft® Excel®
40.2.6. Seam RSS support
40.2.7. JBoss Rules
40.2.8. JBPM
40.2.9. GWT
40.2.10. Spring
40.2.11. Groovy
40.3. Dependency Management using Maven