SeamFramework.orgCommunity Documentation

Seam 3

Bundled Reference Guide


1. Credits
1.1. List of contributors
1.2. Want to join the team?
2. Seam
2.1. Overview
2.2. Seam Bill of Materials
I. Forge
Introduction
3. Installation
3.1. Installing a distribution download
4. Generating a basic Java EE web-application
4.1. First steps with Scaffolding
5. Developing a Plugin
5.1. Referencing the Forge APIs
5.1.1. Using Forge
5.1.2. With Maven
5.2. Implementing the Plugin interface
5.3. Naming your plugin
5.4. Add commands to your plugin
5.4.1. Default commands
5.4.2. Named commands
5.5. Understanding command @Options
5.5.1. --named options
5.5.2. Ordered options
5.5.3. Combining --named and ordered options
5.6. Piping output between plugins
5.7. Ensure all referenced libraries are on the CLASSPATH
5.8. Make your Plugin available to Forge
5.8.1. As local source files (for development)
5.8.2. As a git repository
5.8.3. As a distributable JAR file
II. Seam Solder
Introduction
6. Getting Started
6.1. Maven dependency configuration
6.2. Transitive dependencies
6.3. Pre-Servlet 3.0 configuration
7. Enhancements to the CDI Programming Model
7.1. Preventing a class from being processed
7.1.1. @Veto
7.1.2. @Requires
7.2. @Exact
7.3. @Client
7.4. Named packages
7.5. @FullyQualified bean names
8. Annotation Literals
9. Evaluating Unified EL
10. Resource Loading
10.1. Extending the Resource Loader
11. Logging, redesigned
11.1. JBoss Logging: The foundation
11.2. Solder Logging: Feature set
11.3. Typed loggers
11.4. Native logger API
11.5. Typed message bundles
11.6. Implementation classes
11.6.1. Generating the implementation classes
11.6.2. Including the implementation classes in Arquillian tests
12. Annotation and AnnotatedType Utilities
12.1. Annotated Type Builder
12.2. Annotation Instance Provider
12.3. Annotation Inspector
12.4. Synthetic Qualifiers
12.5. Reflection Utilities
13. Obtaining a reference to the BeanManager
14. Bean Utilities
15. Properties
15.1. Working with properties
15.2. Querying for properties
15.3. Property Criteria
15.3.1. AnnotatedPropertyCriteria
15.3.2. NamedPropertyCriteria
15.3.3. TypedPropertyCriteria
15.3.4. Creating a custom property criteria
15.4. Fetching the results
16. Unwrapping Producer Methods
17. Default Beans
18. Generic Beans
18.1. Using generic beans
18.2. Defining Generic Beans
19. Service Handler
III. Seam Configuration
20. Seam Config Introduction
20.1. Getting Started
20.2. The Princess Rescue Example
21. Seam Config XML provider
21.1. XML Namespaces
21.2. Adding, replacing and modifying beans
21.3. Applying annotations using XML
21.4. Configuring Fields
21.4.1. Initial Field Values
21.4.2. Inline Bean Declarations
21.5. Configuring methods
21.6. Configuring the bean constructor
21.7. Overriding the type of an injection point
21.8. Configuring Meta Annotations
21.9. Virtual Producer Fields
21.10. More Information
IV. Seam Persistence
22. Seam Persistence Reference
22.1. Introduction
22.2. Getting Started
22.3. Transaction Management
22.3.1. Configuration
22.3.2. Declarative Transaction Management
22.4. Seam-managed persistence contexts
22.4.1. Using a Seam-managed persistence context with JPA
22.4.2. Seam-managed persistence contexts and atomic conversations
22.4.3. Using EL in EJB-QL/HQL
22.4.4. Setting up the EntityManager
V. Seam Servlet
Introduction
23. Installation
23.1. Maven dependency configuration
23.2. Pre-Servlet 3.0 configuration
24. Servlet event propagation
24.1. Servlet context lifecycle events
24.2. Application initialization
24.3. Servlet request lifecycle events
24.4. Servlet response lifecycle events
24.5. Servlet request context lifecycle events
24.6. Session lifecycle events
24.7. Session activation events
25. Injectable Servlet objects and request state
25.1. @Inject @RequestParam
25.2. @Inject @HeaderParam
25.3. @Inject ServletContext
25.4. @Inject ServletRequest / HttpServletRequest
25.5. @Inject ServletResponse / HttpServletResponse
25.6. @Inject HttpSession
25.7. @Inject HttpSessionStatus
25.8. @Inject @ContextPath
25.9. @Inject List<Cookie>
25.10. @Inject @CookieParam
25.11. @Inject @ServerInfo
25.12. @Inject @Principal
26. Exception handling: Seam Catch integration
26.1. Background
26.2. Defining a exception handler for a web request
27. Retrieving the BeanManager from the servlet context
VI. Seam Security
28. Security - Introduction
28.1. Overview
28.1.1. Authentication
28.1.2. Identity Management
28.1.3. External Authentication
28.1.4. Authorization
28.2. Configuration
28.2.1. Maven Dependencies
28.2.2. Third Party Dependencies
29. Security - Authentication
29.1. Basic Concepts
29.2. Built-in Authenticators
29.3. Which Authenticator will Seam use?
29.4. Writing a custom Authenticator
30. Security - Identity Management
30.1. Overview
30.2. Configuring Seam to use Identity Management
30.3. Using the Identity Management Features
30.3.1. Managing Users and Groups
30.3.2. Managing Relationships
30.3.3. Managing Roles
30.4. JpaIdentityStore
30.4.1. Recommended database schema
30.4.2. Configuring JpaIdentityStore
30.4.3. Configuring your Entities
31. Security - External Authentication
31.1. Introduction
31.1.1. Configuration
31.2. OpenID
31.2.1. Overview
31.2.2. Enabling OpenID for your application
31.2.3. Choosing which OpenID provider to use
31.2.4. Managing the OpenID authentication process
32. Security - Authorization
32.1. Basic Concepts
32.1.1. IdentityType
32.1.2. User
32.1.3. Group
32.1.4. Role
32.1.5. RoleType
32.2. Role and Group-based authorization
32.3. Typesafe authorization
32.3.1. Creating a typesafe security binding
32.3.2. Creating an authorizer method
32.3.3. Applying the binding to your business methods
32.3.4. Built-in security binding annotations
VII. Seam International
Introduction
33. Installation
34. Locales
34.1. Application Locale
34.2. User Locale
34.3. Available Locales
35. Timezones
35.1. Joda Time
35.2. Application TimeZone
35.3. User TimeZone
35.4. Available TimeZones
36. Messages
36.1. Message Creation
36.2. Properties Files
VIII. Seam Faces
Introduction
37. Installation
37.1. Maven dependency configuration
37.2. Pre-Servlet 3.0 configuration
38. Faces Events Propagation
38.1. JSF Phase events
38.1.1. Seam Faces Phase events
38.1.2. Phase events listing
38.2. JSF system events
38.2.1. Seam Faces System events
38.2.2. System events listing
38.2.3. Component system events
39. Faces Scoping Support
39.1. @RenderScoped
39.2. @Inject javax.faces.contet.Flash flash
39.3. @ViewScoped
40. Messages API
40.1. Adding Messages
40.2. Displaying pending messages
41. Faces Artifact Injection
41.1. @*Scoped and @Inject in Validators and Converters
41.2. @Inject'able Faces Artifacts
42. Seam Faces Components
42.1. Introduction
42.2. <s:validateForm>
42.3. <s:viewAction>
42.3.1. Motivation
42.3.2. Usage
42.3.3. View actions vs the PreRenderViewEvent
42.4. UI Input Container
IX. Seam Catch
43. Seam Catch - Introduction
44. Seam Catch - Installation
44.1. Maven dependency configuration
45. Seam Catch - Usage
45.1. Exception handlers
45.2. Exception handler annotations
45.2.1. @HandlesExceptions
45.2.2. @Handles
45.3. Exception stack trace processing
45.4. Exception handler ordering
45.4.1. Traversal of exception type hierarchy
45.4.2. Handler precedence
45.5. APIs for exception information and flow control
45.5.1. CaughtException
45.5.2. ExceptionStack
46. Seam Catch - Framework Integration
46.1. Creating and Firing an ExceptionToCatch event
46.2. Default Handlers and Qualifiers
46.2.1. Default Handlers
46.2.2. Qualifiers
46.3. Supporting ServiceHandlers
Seam Catch - Glossary
X. Seam Remoting
47. Seam Remoting - Basic Features
47.1. Configuration
47.1.1. Dynamic type loading
47.2. The "Seam" object
47.2.1. A Hello World example
47.2.2. Seam.createBean
47.3. The Context
47.3.1. Setting and reading the Conversation ID
47.3.2. Remote calls within the current conversation scope
47.4. Working with Data types
47.4.1. Primitives / Basic Types
47.4.2. JavaBeans
47.4.3. Dates and Times
47.4.4. Enums
47.4.5. Collections
47.5. Debugging
47.6. Handling Exceptions
47.7. The Loading Message
47.7.1. Changing the message
47.7.2. Hiding the loading message
47.7.3. A Custom Loading Indicator
47.8. Controlling what data is returned
47.8.1. Constraining normal fields
47.8.2. Constraining Maps and Collections
47.8.3. Constraining objects of a specific type
47.8.4. Combining Constraints
48. Seam Remoting - Model API
48.1. Introduction
48.2. Model Operations
48.3. Fetching a model
48.3.1. Fetching a bean value
48.4. Modifying model values
48.5. Expanding a model
48.6. Applying Changes
49. Seam Remoting - Bean Validation
49.1. Validating a single object
49.2. Validating a single property
49.3. Validating multiple objects and/or properties
49.4. Validation groups
49.5. Handling validation failures
XI. Seam REST
Introduction
50. Installation
50.1. Basics
50.2. Transitive dependencies
50.3. Registering JAX-RS components explicitly
51. Exception Handling
51.1. Seam Catch Integration
51.2. Declarative Exception Mapping
51.2.1. Annotation-based configuration
51.2.2. XML configuration
51.2.3. Declarative exception mapping processing
52. Bean Validation Integration
52.1. Validating HTTP requests
52.1.1. Validating entity body
52.1.2. Validating resource fields
52.1.3. Validating other method parameters
52.2. Validation configuration
52.3. Using validation groups
53. Templating support
53.1. Creating JAX-RS responses using templates
53.1.1. Accessing the model
53.2. Built-in support for templating engines
53.2.1. FreeMarker
53.2.2. Apache Velocity
53.2.3. Pluggable support for templating engines
53.2.4. Selecting prefered templating engine
54. RESTEasy Client Framework Integration
54.1. Using RESTEasy Client Framework with Seam REST
54.2. Manual ClientRequest API
54.3. ClientExecutor Configuration
55. Seam REST Dependencies
55.1. Transitive Dependencies
55.2. Optional dependencies
55.2.1. Seam Catch
55.2.2. Seam Config
55.2.3. FreeMarker
55.2.4. Apache Velocity
55.2.5. RESTEasy
XII. Seam Validation
56. Introduction
57. Installation
57.1. Prerequisites
57.2. Maven setup
57.3. Manual setup
58. Dependency Injection
58.1. Retrieving of validator factory and validators via dependency injection
58.2. Dependency injection for constraint validators
59. Method Validation
XIII. Seam Wicket
Introduction
60. Installation
61. Seam for Apache Wicket Features
61.1. Injection
61.2. Conversation Control
61.3. Conversation Propagation