SeamFramework.orgCommunity Documentation

Weld - JSR-299 Reference Implementation

JSR-299: The new Java standard for dependency injection and contextual lifecycle management

A note about naming and nomenclature
I. Beans
1. Introduction
1.1. What is a bean?
1.2. Getting our feet wet
2. More about beans
2.1. The anatomy of a bean
2.1.1. Bean types, qualifiers and dependency injection
2.1.2. Scope
2.1.3. EL name
2.1.4. Alternatives
2.1.5. Interceptor binding types
2.2. What kinds of classes are beans?
2.2.1. Managed beans
2.2.2. Session beans
2.2.3. Producer methods
2.2.4. Producer fields
3. JSF web application example
4. Dependency injection and programmatic lookup
4.1. Injection points
4.2. What gets injected
4.3. Qualifier annotations
4.4. The built-in qualifiers @Default and @Any
4.5. Qualifiers with members
4.6. Multiple qualifiers
4.7. Alternatives
4.8. Fixing unsatisfied and ambiguous dependencies
4.9. Client proxies
4.10. Obtaining a contextual instance by programmatic lookup
4.11. The InjectionPoint object
5. Scopes and contexts
5.1. Scope types
5.2. Built-in scopes
5.3. The conversation scope
5.3.1. Conversation demarcation
5.3.2. Conversation propagation
5.3.3. Conversation timeout
5.4. The singleton pseudo-scope
5.5. The dependent pseudo-scope
5.6. The @New qualifier
II. Weld, the CDI Reference Implementation
6. Getting started with Weld
6.1. Prerequisites
6.2. Deploying to JBoss AS
6.3. Deploying to GlassFish
6.4. Deploying to Apache Tomcat
6.4.1. Deploying with Ant
6.4.2. Deploying with Maven
6.5. Deploying to Jetty
7. Diving into the Weld examples
7.1. The numberguess example in depth
7.1.1. The numberguess example in Apache Tomcat or Jetty
7.2. The numberguess example for Apache Wicket
7.2.1. Creating the Eclipse project
7.2.2. Running the example from Eclipse
7.2.3. Running the example from the command line in JBoss AS or Tomcat
7.2.4. Understanding the code
7.3. The numberguess example for Java SE with Swing
7.3.1. Creating the Eclipse project
7.3.2. Running the example from Eclipse
7.3.3. Running the example from the command line
7.3.4. Understanding the code
7.4. The translator example in depth
III. Loose coupling with strong typing
8. Producer methods
8.1. Scope of a producer method
8.2. Injection into producer methods
8.3. Use of @New with producer methods
8.4. Disposer methods
9. Interceptors
9.1. Interceptor bindings
9.2. Implementing interceptors
9.3. Enabling interceptors
9.4. Interceptor bindings with members
9.5. Multiple interceptor binding annotations
9.6. Interceptor binding type inheritance
9.7. Use of @Interceptors
10. Decorators
10.1. Delegate object
10.2. Enabling decorators
11. Events
11.1. Event payload
11.2. Event observers
11.3. Event producers
11.4. Conditional observer methods
11.5. Event qualifiers with members
11.6. Multiple event qualifiers
11.7. Transactional observers
12. Stereotypes
12.1. Default scope for a stereotype
12.2. Interceptor bindings for stereotypes
12.3. Name defaulting with stereotypes
12.4. Alternative stereotypes
12.5. Stereotype stacking
12.6. Built-in stereotypes
13. Specialization, inheritance and alternatives
13.1. Using alternative stereotypes
13.2. A minor problem with alternatives
13.3. Using specialization
14. Java EE component environment resources
14.1. Defining a resource
14.2. Typesafe resource injection
IV. CDI and the Java EE ecosystem
15. Java EE integration
15.1. Built-in beans
15.2. Injecting Java EE resources into a bean
15.3. Calling a bean from a servlet
15.4. Calling a bean from a message-driven bean
15.5. JMS endpoints
15.6. Packaging and deployment
16. Portable extensions
16.1. Creating an Extension
16.2. Container lifecycle events
16.3. The BeanManager object
16.4. The InjectionTarget interface
16.5. The Bean interface
16.6. Registering a Bean
16.7. Wrapping an AnnotatedType
16.8. Wrapping an InjectionTarget
16.9. The Context interface
17. Next steps
V. Weld reference
18. Application servers and environments supported by Weld
18.1. Using Weld with JBoss AS
18.2. GlassFish
18.3. Servlet containers (such as Tomcat or Jetty)
18.3.1. Tomcat
18.3.2. Jetty
18.4. Java SE
18.4.1. CDI SE Module
18.4.2. Bootstrapping CDI SE
18.4.3. Thread Context
18.4.4. Setting the Classpath
19. Configuration
19.1. Excluding classes from scanning and deployment
A. Integrating Weld into other environments
A.1. The Weld SPI
A.1.1. Deployment structure
A.1.2. EJB descriptors
A.1.3. EE resource injection and resolution services
A.1.4. EJB services
A.1.5. JPA services
A.1.6. Transaction Services
A.1.7. Resource Services
A.1.8. Injection Services
A.1.9. Security Services
A.1.10. Bean Validation Services
A.1.11. Identifying the BDA being addressed
A.1.12. The bean store
A.1.13. The application context
A.1.14. Initialization and shutdown
A.1.15. Resource loading
A.2. The contract with the container