JSR 299: Web Beans

Web Beans Expert Group

Public Review


Table of Contents

1. Architecture
1.1. Contracts
1.2. Supported environments
1.3. Relationship to other specifications
1.3.1. Relationship to EJB
1.3.2. Relationship to JSF
1.3.3. Relationship to Java Servlets
1.3.4. Relationship to Common Annotations for the Java Platform
1.4. Introductory examples
1.4.1. JSF example
1.4.2. EJB example
1.4.3. Interceptor example
1.4.4. Decorator example
2. Web Bean definition
2.1. Functionality provided by the Web Bean manager to the Web Bean
2.2. Web Bean API types
2.3. Binding types
2.3.1. Default binding type
2.3.2. Defining binding types
2.3.3. Declaring the binding types of a Web Bean using annotations
2.3.4. Declaring the binding types of a Web Bean using XML
2.3.5. Using binding annotations on injected fields
2.3.6. Using binding annotations on method or constructor parameters
2.4. Web Bean scopes
2.4.1. Built-in scope types
2.4.2. Defining new scope types
2.4.3. Declaring the Web Bean scope using annotations
2.4.4. Declaring the Web Bean scope using XML
2.4.5. Default scope
2.5. Deployment types
2.5.1. Built-in deployment types
2.5.2. Defining new deployment types
2.5.3. Declaring the deployment type of a Web Bean using annotations
2.5.4. Declaring the deployment type of a Web Bean using XML
2.5.5. Default deployment type
2.5.6. Enabled deployment types
2.5.7. Deployment type precedence
2.6. Web Bean names
2.6.1. Declaring the Web Bean name using annotations
2.6.2. Declaring the Web Bean name using XML
2.6.3. Default Web Bean names
2.6.4. Web Beans with no name
2.7. Stereotypes
2.7.1. Defining new stereotypes
2.7.2. Declaring the stereotypes for a Web Bean using annotations
2.7.3. Declaring the stereotypes for a Web Bean using XML
2.7.4. Stereotype restrictions
2.7.5. Built-in stereotypes
2.8. Specialization
2.8.1. Direct and indirect specialization
2.8.2. Inconsistent specialization
3. Web Bean implementation
3.1. Restriction upon Web Bean instantiation
3.2. Simple Web Beans
3.2.1. Which Java classes are simple Web Beans?
3.2.2. API types of a simple Web Bean
3.2.3. Declaring a simple Web Bean using annotations
3.2.4. Declaring a simple Web Bean using XML
3.2.5. Web Bean constructors
3.2.5.1. Declaring a Web Bean constructor using annotations.
3.2.5.2. Declaring a Web Bean constructor using XML.
3.2.5.3. Web Bean constructor parameters
3.2.6. Specializing a simple Web Bean
3.2.7. Default name for a simple Web Bean
3.3. Enterprise Web Beans
3.3.1. Which EJBs are enterprise Web Beans?
3.3.2. API types of an enterprise Web Bean
3.3.3. Declaring an enterprise Web Bean using annotations
3.3.4. Declaring an enterprise Web Bean using XML
3.3.5. Web Bean remove methods
3.3.5.1. Declaring a Web Bean remove method using annotations.
3.3.5.2. Declaring a Web Bean remove method using XML.
3.3.5.3. Remove method parameters
3.3.6. Specializing an enterprise Web Bean
3.3.7. Default name for an enterprise Web Bean
3.3.8. Enterprise bean proxies
3.4. Producer methods
3.4.1. API types of a producer method
3.4.2. Declaring a producer method using annotations
3.4.3. Declaring a producer method using XML
3.4.4. Producer method parameters
3.4.5. Specializing a producer method
3.4.6. Disposal methods
3.4.7. Disposed parameter of a disposal method
3.4.8. Declaring a disposal method using annotations
3.4.9. Declaring a disposal method using XML
3.4.10. Disposal method parameters
3.4.11. Disposal method resolution
3.4.12. Default name for a producer method
3.5. JMS endpoints
3.5.1. API types of a JMS endpoint
3.5.2. Declaring a JMS endpoint using XML
3.6. Injected fields
3.6.1. Declaring an injected field using annotations
3.6.2. Declaring an injected field using XML
3.7. Initializer methods
3.7.1. Declaring an initializer method using annotations
3.7.2. Declaring an initializer method using XML
3.7.3. Initializer method parameters
3.8. The @New binding type
3.9. Support for Common Annotations
3.10. The Bean object for a Web Bean
4. Lookup, dependency injection and EL resolution
4.1. Unsatisfied and ambiguous dependencies
4.2. Primitive types and null values
4.3. Injected reference validity
4.4. Client proxies
4.4.1. Unproxyable API types
4.4.2. Client proxy invocation
4.5. The default binding type at injection points
4.6. Generic type literals
4.7. Annotation type literals
4.8. The Manager object
4.9. Instance resolution
4.9.1. Dynamic lookup
4.9.2. Typesafe resolution algorithm
4.9.2.1. Binding annotations with members
4.9.2.2. Multiple binding annotations
4.10. EL name resolution
4.10.1. Name resolution algorithm
4.10.2. Integration with Unified EL
5. Web Bean lifecycle
5.1. Creation
5.2. Destruction
5.3. Lifecycle of simple Web Beans
5.4. Lifecycle of stateful session enterprise Web beans
5.5. Lifecycle of stateless session and singleton enterprise Web Beans
5.6. Lifecycle of producer methods
5.7. Lifecycle of JMS endpoints
5.8. Lifecycle of EJB beans
5.9. Lifecycle of Servlets
6. Interceptors and decorators
6.1. Business methods
6.2. Interceptors
6.2.1. Business method interceptors
6.2.2. Lifecycle callback interceptors
6.2.3. Support for @Interceptors
6.2.4. Interceptor bindings
6.2.4.1. Interceptor binding types with additional interceptor bindings
6.2.4.2. Interceptor bindings for stereotypes
6.2.5. Web Beans interceptors
6.2.5.1. Declaring a Web Beans interceptor using annotations
6.2.5.2. Declaring a Web Beans interceptor using XML
6.2.6. Binding a Web Beans interceptor to a Web Bean or EJB bean
6.2.6.1. Binding a Web Beans interceptor using annotations
6.2.6.2. Binding a Web Beans interceptor using XML
6.2.7. Interceptor enablement and ordering
6.2.8. The Interceptor object for an interceptor
6.2.9. Interceptor resolution
6.2.9.1. Interceptors with multiple binding types
6.2.9.2. Interceptor binding types with members
6.2.10. Interceptor stack creation
6.2.11. Interceptor invocation
6.3. Decorators
6.3.1. Declaring a decorator using annotations
6.3.2. Declaring a decorator using XML
6.3.3. Decorator delegate attributes
6.3.4. Decorated types of a decorator
6.3.5. Decorator enablement and ordering
6.3.6. The Decorator object for a decorator
6.3.7. Decorator resolution
6.3.8. Decorator stack creation
6.3.9. Decorator invocation
7. Events
7.1. Event types and binding types
7.2. Firing an event via the Manager interface
7.3. Observing events via the Observer interface
7.4. Observer invocation
7.5. Observer methods
7.5.1. Event parameter of an observer method
7.5.2. Declaring an observer method using annotations
7.5.3. Declaring an observer method using XML
7.5.4. Observer method parameters
7.5.5. Conditional observers
7.5.6. Transactional observers
7.5.7. Observer object for an observer method
7.6. The Event interface
7.7. Observer resolution
7.7.1. Event binding annotations with members
7.7.2. Multiple event binding annotations
8. Scopes and contexts
8.1. The Context interface
8.2. Normal scopes and pseudo-scopes
8.3. Dependent pseudo-scope
8.3.1. Dependent objects of a simple or enterprise Web Bean
8.3.2. Dependent objects of a producer method
8.3.3. Dependent objects of an EJB bean or Servlet
8.3.4. Dependent object destruction
8.4. Passivating scopes and serialization
8.5. Context management for built-in scopes
8.5.1. Request context lifecycle
8.5.2. Session context lifecycle
8.5.3. Application context lifecycle
8.5.4. Conversation context lifecycle
8.6. Context management for custom scopes
9. XML based metadata
9.1. XML namespace for a Java package
9.2. Web Bean declarations
9.2.1. Child elements of a Web Bean declaration
9.2.2. Type-level metadata for a Web Bean
9.2.3. Web Bean constructor declarations
9.2.4. Fields of a Web Bean
9.2.5. Field initial value declarations
9.2.6. Methods of a Web Bean
9.3. Producer method declarations
9.3.1. Child elements of a producer method declaration
9.3.2. Return type and binding types of a producer method
9.3.3. Method-level metadata for a producer method
9.4. Interceptor and decorator declarations
9.4.1. Decorator delegate attribute
9.5. Injection point declarations
9.6. Inline Web Bean declarations
9.7. Specifying API types and binding types
9.8. Annotation members
9.9. Deployment declarations
9.9.1. The <Deploy> declaration
9.9.2. The <Interceptors> declaration
9.9.3. The <Decorators> declaration
10. Packaging and deployment
10.1. Web Bean discovery
10.2. Web Bean registration
10.3. EJB lookup
10.4. Initialization event
10.5. Java EE integration
11. Exceptions
11.1. Definition errors
11.2. Deployment problems
11.3. Execution errors