gwt cdi jud_con_berlin

23
GWT & CDI Heiko Braun <[email protected] >

Upload: hbraun

Post on 19-May-2015

3.675 views

Category:

Technology


2 download

DESCRIPTION

Using GWT with CDI

TRANSCRIPT

Page 2: Gwt cdi jud_con_berlin

Topics

• CDI & GWT• Use Cases & Requirements• Relevant Concepts• Likeminded Technologies• Demo

Page 3: Gwt cdi jud_con_berlin

GWT & CDI

Page 4: Gwt cdi jud_con_berlin

Google Web Toolkit

• Create Ajax applications from Java sources• GWT SDK: Compiler, API, Tools• Creates highly optimized, portable javascript

code

Page 5: Gwt cdi jud_con_berlin

Context and Dependency Injection• CDI: JSR-299, JSR-330• Reference implementation: Weld

• Seam 3• EE6 component model• Portable extensions

• shrink-size or extend runtime (framework)

Page 6: Gwt cdi jud_con_berlin

Use Cases & Requirements

Page 7: Gwt cdi jud_con_berlin

Use Cases

• Invoke CDI beans from GWT clients• RPC• Pub/Sub• Eventing

• Expose domain models to GWT clients• Serialization

Page 8: Gwt cdi jud_con_berlin

Example: RPC bean

Page 9: Gwt cdi jud_con_berlin

Example: RPC Client

Page 10: Gwt cdi jud_con_berlin

Requirements

• “Seamless integration”• Verified concepts• Concise programming model• Reduction of boilerplate

Page 11: Gwt cdi jud_con_berlin

Example: Event Bean

Page 12: Gwt cdi jud_con_berlin

Example: Event Client

Page 13: Gwt cdi jud_con_berlin

Relevant Concepts

Page 14: Gwt cdi jud_con_berlin

Beans, Qualifiers & Scopes

• Bean type: Client-visible type (class, interface)• Qualifier: Distinguish multiple beans of the same

type• @Named, @Asynchronous

• Scope: Determines instance lifecycle• @SessionScoped,

@ConversationScoped, @RequestScoped

Page 15: Gwt cdi jud_con_berlin

Build & Run-time• Run-time

• Deployment • Same Origin Policy?

• Transactions, Security• Context propagation?

• Clustering, Failover• Stateful Ajax Client?

• Build-time

• GWT Compiler constraints

• Domain model & API?

• Hosted Mode

• CDI Bootstrap?

• Deferred Binding

• Boiler plate

Java Javascript

Page 16: Gwt cdi jud_con_berlin

Example: Conversation Scoped Bean

Page 17: Gwt cdi jud_con_berlin

Example: Client managed conversation (1)

Page 18: Gwt cdi jud_con_berlin

Example: Client managed conversation (2)

Page 19: Gwt cdi jud_con_berlin

Likeminded Technologies

Page 20: Gwt cdi jud_con_berlin

Related Technologies

• JPA• Serialization• Detachment (lazy/eager loading)• Merging

• DataBinding• Widgets, Validation, Synchronization

• JMS• Ajax client as Topic Subscriber/Publisher

Page 21: Gwt cdi jud_con_berlin

Project and Roadmap

Page 22: Gwt cdi jud_con_berlin

Errai & Weld

• Errai acts as Umbrella (http://jboss.org/errai)• Weld as Reference implementation• Driven by both Errai and CDI Team• Same runtimes Weld supports:

• SE, Servlet, EE6, EC2:“Start POC, grow big”

Page 23: Gwt cdi jud_con_berlin

Questions?

• Project: http://jboss.org/errai• Weld: http://seamframework.org• Blog: http://errai-blog.blogspot.com/• IRC: irc.freenode.net#errai