2. Topics
• Use cases
• CDI Concepts
• Bootstrap process
• Invocation Handling
• Status & Roadmap
2
3. Use cases
• Initially
• Declaring a CDI component as Service
• Exposing a CDI component as RPC endpoint
• Integrating with the CDI event subsystem
3
4. Declaring Services
GWT Client
• Most low level use cases
• Similar to MessageDriven
Bean
• Service implementation CDI Component
fully managed by CDI
container
4
5. Exposing RPC endpoints
GWT Client
• Exposes a typed
interface
• Similar to EJB Session
beans
CDI Component
Remote interface
5
6. Working with CDI events
• Bi-directional event GWT Client
exchange
• Discriminate on:
- Event Type
- Qualifier
Annotations
• Exposes high level
CDI Component
CDI client API
6
7. CDI Concepts
• Portable Extensions
• Integration point when container bootstraps
• Create beans, annotation processing, meta data
modifications
• Scope & Lifecycle
• ApplicationScoped, RequestScoped, ConversationScoped
• Bean context & reference
• Lookup and instance (reference) creation
7
8. Bootstrap process
• Two phases: CDI -> Errai Bootstrap
• Ordering important
• CDI Service discovery first
• Services instances are maintained by CDI
8
9. Service discovery
• Provide injection points
for Errai Components
• Discover Errai
annotations during CDI
bootstrap
• Provide service proxies
9
14. Status
• Project:
http://anonsvn.jboss.org/repos/errai/projects/
weld-integration/trunk
• Basic use cases covered
• Incorporate feedback from the CDI team
• Clarification on Errai RPC API
14
15. Roadmap
• More work on Bean scopes:
• Session-, Request-, ConversationScoped
• Integration with EJB3
• Stateless, Stateful session beans
• Transactions, Security, etc:
• Context propagation
15