SeamFramework.orgCommunity Documentation

Seam 3

Bundled Reference Guide


1. Credits
1.1. List of contributors
1.2. Would you like to contribute?
2. Seam
2.1. Overview
2.2. Seam Bill of Materials
I. Solder
Introduction
3. Getting Started
3.1. Maven dependency configuration
3.2. Transitive dependencies
3.3. Pre-Servlet 3.0 configuration
4. Enhancements to the CDI Programming Model
4.1. Preventing a class from being processed
4.1.1. @Veto
4.1.2. @Requires
4.2. @Exact
4.3. @Client
4.4. Named packages
4.5. @FullyQualified bean names
5. Annotation Literals
6. Evaluating Unified EL
6.1. @Resolver
7. Resource Loading
7.1. Extending the Resource Loader
8. Logging, redesigned
8.1. JBoss Logging: The foundation
8.2. Solder Logging: Feature set
8.3. Typed loggers
8.4. Native logger API
8.5. Typed message bundles
8.6. Implementation classes
8.6.1. Generating the implementation classes
8.6.2. Including the implementation classes in Arquillian tests
9. Annotation and AnnotatedType Utilities
9.1. Annotated Type Builder
9.2. Annotation Instance Provider
9.3. Annotation Inspector
9.4. Synthetic Qualifiers
9.5. Reflection Utilities
10. Obtaining a reference to the BeanManager
11. Bean Utilities
12. Properties
12.1. Working with properties
12.2. Querying for properties
12.3. Property Criteria
12.3.1. AnnotatedPropertyCriteria
12.3.2. NamedPropertyCriteria
12.3.3. TypedPropertyCriteria
12.3.4. Creating a custom property criteria
12.4. Fetching the results
13. Unwrapping Producer Methods
14. Default Beans
15. Generic Beans
15.1. Using generic beans
15.2. Defining Generic Beans
16. Service Handler
17. XML Configuration Introduction
17.1. Getting Started
17.2. The Princess Rescue Example
18. Solder Config XML provider
18.1. XML Namespaces
18.2. Adding, replacing and modifying beans
18.3. Applying annotations using XML
18.4. Configuring Fields
18.4.1. Initial Field Values
18.4.2. Inline Bean Declarations
18.5. Configuring methods
18.6. Configuring the bean constructor
18.7. Overriding the type of an injection point
18.8. Configuring Meta Annotations
18.9. Virtual Producer Fields
18.10. More Information
Introduction
19. Installation
19.1. Pre-Servlet 3.0 configuration
20. Servlet event propagation
20.1. Servlet context lifecycle events
20.2. Application initialization
20.3. Servlet request lifecycle events
20.4. Servlet response lifecycle events
20.5. Servlet request context lifecycle events
20.6. Session lifecycle events
20.7. Session activation events
21. Injectable Servlet objects and request state
21.1. @Inject @RequestParam
21.2. @Inject @HeaderParam
21.3. @Inject ServletContext
21.4. @Inject ServletRequest / HttpServletRequest
21.5. @Inject ServletResponse / HttpServletResponse
21.6. @Inject HttpSession
21.7. @Inject HttpSessionStatus
21.8. @Inject @ContextPath
21.9. @Inject List<Cookie>
21.10. @Inject @CookieParam
21.11. @Inject @ServerInfo
21.12. @Inject @Principal
22. Servlet Exception Handling Integration
22.1. Background
22.2. Defining a exception handler for a web request
23. Retrieving the BeanManager from the servlet context
24. Exception Handling - Introduction
24.1. How Solder's Exception Handling Works
25. Exception Handling - Usage
25.1. Eventing into the exception handling framework
25.1.1. Manual firing of the event
25.1.2. Using the @ExceptionHandled Interceptor
25.2. Exception handlers
25.3. Exception handler annotations
25.3.1. @HandlesExceptions
25.3.2. @Handles
25.4. Exception chain processing
25.5. Exception handler ordering
25.5.1. Traversal of exception type hierarchy
25.5.2. Handler precedence
25.6. APIs for exception information and flow control
25.6.1. CaughtException
25.6.2. ExceptionStack
26. Exception handling - Advanced Features
26.1. Exception Modification
26.1.1. Introduction
26.1.2. Usage
26.2. Filtering Stack Traces
26.2.1. Introduction
26.2.2. ExceptionStackOutput
26.2.3. StackFrameFilter
26.2.4. StackFrameFilterResult
26.2.5. StackFrame
27. Exception Handling - Framework Integration
27.1. Creating and Firing an ExceptionToCatch event
27.2. Default Handlers and Qualifiers
27.2.1. Default Handlers
27.2.2. Qualifiers
27.3. Supporting ServiceHandlers
27.4. Programmatic Handler Registration
Exception Handling - Glossary
II. Seam Persistence
28. Seam Persistence Reference
28.1. Introduction
28.2. Getting Started
28.3. Transaction Management
28.3.1. Configuration
28.3.2. Declarative Transaction Management
28.4. Seam-managed persistence contexts
28.4.1. Using a Seam-managed persistence context with JPA
28.4.2. Seam-managed persistence contexts and atomic conversations
28.4.3. Using EL in EJB-QL/HQL
28.4.4. Setting up the EntityManager
III. Seam Transaction
29. Seam Transaction Reference
29.1. Introduction
IV. Seam Security
30. Security - Introduction
30.1. Overview
30.1.1. Authentication
30.1.2. Identity Management
30.1.3. External Authentication
30.1.4. Authorization
30.2. Configuration
30.2.1. Maven Dependencies
30.2.2. Enabling the Security Interceptor
31. Security - Authentication
31.1. Basic Concepts
31.2. Built-in Authenticators
31.3. Which Authenticator will Seam use?
31.4. Writing a custom Authenticator
32. Security - Identity Management
32.1. Overview
32.2. Configuring Seam to use Identity Management with JPA
32.2.1. Recommended database schema
32.2.2. The @IdentityEntity and @IdentityProperty annotations
32.2.3. Identity Object
32.2.4. Credential
32.2.5. Identity Object Relationship
32.2.6. Attributes
32.3. Managing Users, Groups and Roles
32.3.1. Managing Users and Groups
32.3.2. Managing Relationships
32.3.3. Managing Roles
33. Security - External Authentication
33.1. Introduction
33.1.1. Configuration
33.2. OpenID
33.2.1. Overview
33.2.2. Enabling OpenID for your application
33.2.3. Choosing which OpenID provider to use
33.2.4. Managing the OpenID authentication process
34. Security - Authorization
34.1. Configuration
34.2. Basic Concepts
34.2.1. IdentityType
34.2.2. User
34.2.3. Group
34.2.4. Role
34.2.5. RoleType
34.3. Role and Group-based authorization
34.4. Typesafe authorization
34.4.1. Creating a typesafe security binding
34.4.2. Creating an authorizer method
34.4.3. Applying the binding to your business methods
34.4.4. Built-in security binding annotations
35. Security - Events
35.1. Introduction
35.2. Event list
35.3. Usage Example
V. Seam International
Introduction
36. Installation
37. Locales
37.1. Application Locale
37.2. User Locale
37.3. Available Locales
38. Timezones
38.1. Joda Time
38.2. Application TimeZone
38.3. User TimeZone
38.4. Available TimeZones
39. Messages
39.1. Message Creation
39.2. Properties Files
VI. Seam Faces
Introduction
40. Installation
40.1. Maven dependency configuration
40.2. Pre-Servlet 3.0 configuration
40.3. How to setup JSF in a Java EE 6 webapp
41. Faces Events Propagation
41.1. JSF Phase events
41.1.1. Seam Faces Phase events
41.1.2. Phase events listing
41.2. JSF system events
41.2.1. Seam Faces System events
41.2.2. System events listing
41.2.3. Component system events
42. Faces Scoping Support
42.1. @RenderScoped
42.2. @Inject javax.faces.context.Flash flash
42.3. @ViewScoped
43. Messages API
43.1. Adding Messages
43.2. Displaying pending messages
44. Faces Artifact Injection
44.1. @*Scoped and @Inject in Validators and Converters
44.2. @Inject'able Faces Artifacts
45. Seam Faces Components
45.1. Introduction
45.2. <s:validateForm>
45.3. <s:viewAction>
45.3.1. Motivation
45.3.2. Usage
45.3.3. View actions vs the PreRenderViewEvent
45.4. ObjectConverter
45.5. UI Input Container
VII. Seam Reports
Introduction
46. Installation
46.1. Installation using Seam Forge
46.1.1. Plugin Installation
46.1.2. Plugin Configuration
47. Usage
47.1. Quick Start
47.2. Annotations
47.3. Troubleshooting
VIII. Seam Mail
48. Seam Mail Introduction
48.1. Getting Started
49. Configuration
49.1. Minimal Configuration
50. Core Usage
50.1. Intro
50.2. Contacts
50.2.1. String Based
50.2.2. InternetAddress
50.2.3. EmailContact
50.2.4. Content
50.2.5. Attachments
51. Templating
51.1. Velocity
51.2. Freemarker
52. Advanced Features
52.1. MailTransporter
52.2. MailConfig
IX. Seam Remoting
53. Seam Remoting - Basic Features
53.1. Configuration
53.1.1. Dynamic type loading
53.2. The "Seam" object
53.2.1. A Hello World example
53.2.2. Seam.createBean
53.3. The Context
53.3.1. Setting and reading the Conversation ID
53.3.2. Remote calls within the current conversation scope
53.4. Working with Data types
53.4.1. Primitives / Basic Types
53.4.2. JavaBeans
53.4.3. Dates and Times
53.4.4. Enums
53.4.5. Collections
53.5. Debugging
53.6. Messages
53.7. Handling Exceptions
53.8. The Loading Message
53.8.1. Changing the message
53.8.2. Hiding the loading message
53.8.3. A Custom Loading Indicator
53.9. Controlling what data is returned
53.9.1. Constraining normal fields
53.9.2. Constraining Maps and Collections
53.9.3. Constraining objects of a specific type
53.9.4. Combining Constraints
54. Seam Remoting - Model API
54.1. Introduction
54.2. Model Operations
54.3. Fetching a model
54.3.1. Fetching a bean value
54.4. Modifying model values
54.5. Expanding a model
54.6. Applying Changes
55. Seam Remoting - Bean Validation
55.1. Validating a single object
55.2. Validating a single property
55.3. Validating multiple objects and/or properties
55.4. Validation groups
55.5. Handling validation failures
X. Seam REST
Introduction
56. Installation
56.1. Basics
56.2. Transitive dependencies
56.3. Registering JAX-RS components explicitly
56.4. Servlet container support
57. Exception Handling
57.1. Solder Exception Handling Integration
57.2. Declarative Exception Mapping
57.2.1. Annotation-based configuration
57.2.2. XML configuration
57.2.3. Declarative exception mapping processing
58. Bean Validation Integration
58.1. Validating HTTP requests
58.1.1. Validating entity body
58.1.2. Validating resource fields
58.1.3. Validating other method parameters
58.2. Validation configuration
58.3. Using validation groups
59. Templating support
59.1. Creating JAX-RS responses using templates
59.1.1. Accessing the model
59.2. Built-in support for templating engines
59.2.1. FreeMarker
59.2.2. Apache Velocity
59.2.3. Pluggable support for templating engines
59.2.4. Selecting preferred templating engine
60. RESTEasy Client Framework Integration
60.1. Using RESTEasy Client Framework with Seam REST
60.2. Manual ClientRequest API
60.3. Client Executor Configuration
61. Seam REST Dependencies
61.1. Transitive Dependencies
61.2. Optional dependencies
61.2.1. FreeMarker
61.2.2. Apache Velocity
61.2.3. RESTEasy
XI. Seam JCR
62. Seam JCR - Introduction
62.1. Introduction
62.2. Maven dependency configuration
63. Seam JCR - JBoss ModeShape Integration
63.1. ModeShape Integration Installation
63.2. Usage
64. Seam JCR - JackRabbit Integration
64.1. JackRabbit Integration Installation
64.2. Usage
65. Seam JCR - Event Mapping
65.1.
65.2.
66. Seam JCR - Object Content Mapping
66.1. What is Object Content Mapping?
66.2. Mapping and Conversion Capabilities
66.3. JCR Data Access Objects
XII. Seam JMS
67. Introduction
67.1. Mission statement
67.2. Seam 3 JMS Module Overview
68. Installation
69. Resource Injection
69.1. JMS Resource Injection
69.1.1. Destination Based Injection
69.1.2. Resource Configuration
69.2. Module Extensions
70. Messaging API
70.1. QueueBuilder and TopicBuilder
70.2. Message Manager
70.3. Durable Messaging Capabilities
70.4. MessageListeners versus Message Driven Beans
71. Bridging the Gap
71.1. Event Routing
71.1.1. Routes
71.2. Routing CDI Events to JMS
71.2.1. Usage
71.3. CDI Events from JMS Messages
71.3.1. Usage
72. Annotation Routing APIs
72.1. Observer Method Interfaces
XIII. Seam Validation
73. Introduction
74. Installation
74.1. Prerequisites
74.2. Maven setup
74.3. Manual setup
75. Dependency Injection
75.1. Retrieving of validator factory and validators via dependency injection
75.2. Dependency injection for constraint validators
76. Method Validation
XIV. Seam Social
Introduction
77. Getting Started
77.1. Building
77.2. Usage big picture
77.3. Starting with OAuth configuration
77.3.1. Create an OAutConfigSettings bean thru Seam configuration (in bean.xml)
77.3.2. Adding the @ConfigureOAuth annotation when injecting the OAuth service bean
77.4. Inject an OAuthService bean with one of the following ways :
77.5. Request the Authorization URL for the service and redirect the app to this url
77.6. Store the verifier in OAuthService bean and init access token
77.7. After what we can send calls to the service
77.8. Testing
XV. Seam Spring
78. Seam Spring - Introduction
78.1. Features
79. Seam Spring - Installation
79.1. Maven dependency configuration
80. Seam Spring - Architecture and Usage
80.1. Accessing Spring artifacts from CDI
80.1.1. Accessing Spring application contexts
80.1.2. Exposing Spring beans as CDI beans
80.2. Importing CDI beans into Spring applications
80.2.1. Registering a BeanManager
80.2.2. Importing a CDI bean as a Spring bean
XVI. Seam Wicket
Introduction
81. Installation
82. Seam for Apache Wicket Features
82.1. Injection
82.2. Conversation Control
82.3. Conversation Propagation