errai cdi integration

15
Errai-CDI Integration Heiko Braun <[email protected] > Apr 2010

Upload: hbraun

Post on 19-May-2015

1.399 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Errai CDI Integration

Errai-CDI IntegrationHeiko Braun <[email protected]>

Apr 2010

Page 2: Errai CDI Integration

Topics

• Use cases

• CDI Concepts

• Bootstrap process

• Invocation Handling

• Status & Roadmap

2

Page 3: Errai CDI Integration

Use cases

• Initially

• Declaring a CDI component as Service

• Exposing a CDI component as RPC endpoint

• Integrating with the CDI event subsystem

3

Page 4: Errai CDI Integration

Declaring Services

• Most low level use cases

• Similar to MessageDriven Bean

• Service implementation fully managed by CDI container

CDI Component

GWT Client

4

Page 5: Errai CDI Integration

Exposing RPC endpoints

• Exposes a typed interface

• Similar to EJB Session beans

CDI Component

Remote interface

GWT Client

5

Page 6: Errai CDI Integration

Working with CDI events

• Bi-directional event exchange

• Discriminate on:- Event Type- Qualifier Annotations

• Exposes high level CDI client API

CDI Component

GWT Client

6

Page 7: Errai CDI Integration

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

Page 8: Errai CDI Integration

Bootstrap process

• Two phases: CDI -> Errai Bootstrap

• Ordering important

• CDI Service discovery first

• Services instances are maintained by CDI

8

Page 9: Errai CDI Integration

Service discovery

• Provide injection points for Errai Components

• Discover Errai annotations during CDI bootstrap

• Provide service proxies

9

Page 10: Errai CDI Integration

Invocation Handling

• Encapsulated in invocation proxy

• Lookup bean reference (instance)

• Context & Scope managed by CDI

10

Page 11: Errai CDI Integration

Invocation proxiesBean invocation (RPC)

11

Page 12: Errai CDI Integration

Event dispatcherCDI Observer

12

Page 13: Errai CDI Integration

Event client boilerplate GWT Client

13

Page 14: Errai CDI Integration

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

Page 15: Errai CDI Integration

Roadmap

• More work on Bean scopes:

• Session-, Request-, ConversationScoped

• Integration with EJB3

• Stateless, Stateful session beans

• Transactions, Security, etc:

• Context propagation

15