gwt & cdi - jboss · 2018-04-16 · gwt & cdi. google web toolkit • create ajax...

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

Upload: others

Post on 21-May-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 2: GWT & CDI - JBoss · 2018-04-16 · GWT & CDI. Google Web Toolkit • Create Ajax applications from Java sources • GWT SDK: Compiler, API, Tools • Creates highly optimized, portable

Topics

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

Page 3: GWT & CDI - JBoss · 2018-04-16 · GWT & CDI. Google Web Toolkit • Create Ajax applications from Java sources • GWT SDK: Compiler, API, Tools • Creates highly optimized, portable

GWT & CDI

Page 4: GWT & CDI - JBoss · 2018-04-16 · GWT & CDI. Google Web Toolkit • Create Ajax applications from Java sources • GWT SDK: Compiler, API, Tools • Creates highly optimized, portable

Google Web Toolkit

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

code

Page 5: GWT & CDI - JBoss · 2018-04-16 · GWT & CDI. Google Web Toolkit • Create Ajax applications from Java sources • GWT SDK: Compiler, API, Tools • Creates highly optimized, portable

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 - JBoss · 2018-04-16 · GWT & CDI. Google Web Toolkit • Create Ajax applications from Java sources • GWT SDK: Compiler, API, Tools • Creates highly optimized, portable

Use Cases & Requirements

Page 7: GWT & CDI - JBoss · 2018-04-16 · GWT & CDI. Google Web Toolkit • Create Ajax applications from Java sources • GWT SDK: Compiler, API, Tools • Creates highly optimized, portable

Use Cases

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

• Expose domain models to GWT clients• Serialization

Page 8: GWT & CDI - JBoss · 2018-04-16 · GWT & CDI. Google Web Toolkit • Create Ajax applications from Java sources • GWT SDK: Compiler, API, Tools • Creates highly optimized, portable

Example: RPC bean

Page 9: GWT & CDI - JBoss · 2018-04-16 · GWT & CDI. Google Web Toolkit • Create Ajax applications from Java sources • GWT SDK: Compiler, API, Tools • Creates highly optimized, portable

Example: RPC Client

Page 10: GWT & CDI - JBoss · 2018-04-16 · GWT & CDI. Google Web Toolkit • Create Ajax applications from Java sources • GWT SDK: Compiler, API, Tools • Creates highly optimized, portable

Requirements

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

Page 11: GWT & CDI - JBoss · 2018-04-16 · GWT & CDI. Google Web Toolkit • Create Ajax applications from Java sources • GWT SDK: Compiler, API, Tools • Creates highly optimized, portable

Example: Event Bean

Page 12: GWT & CDI - JBoss · 2018-04-16 · GWT & CDI. Google Web Toolkit • Create Ajax applications from Java sources • GWT SDK: Compiler, API, Tools • Creates highly optimized, portable

Example: Event Client

Page 13: GWT & CDI - JBoss · 2018-04-16 · GWT & CDI. Google Web Toolkit • Create Ajax applications from Java sources • GWT SDK: Compiler, API, Tools • Creates highly optimized, portable

Relevant Concepts

Page 14: GWT & CDI - JBoss · 2018-04-16 · GWT & CDI. Google Web Toolkit • Create Ajax applications from Java sources • GWT SDK: Compiler, API, Tools • Creates highly optimized, portable

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 - JBoss · 2018-04-16 · GWT & CDI. Google Web Toolkit • Create Ajax applications from Java sources • GWT SDK: Compiler, API, Tools • Creates highly optimized, portable

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 - JBoss · 2018-04-16 · GWT & CDI. Google Web Toolkit • Create Ajax applications from Java sources • GWT SDK: Compiler, API, Tools • Creates highly optimized, portable

Example: Conversation Scoped Bean

Page 17: GWT & CDI - JBoss · 2018-04-16 · GWT & CDI. Google Web Toolkit • Create Ajax applications from Java sources • GWT SDK: Compiler, API, Tools • Creates highly optimized, portable

Example: Client managed conversation (1)

Page 18: GWT & CDI - JBoss · 2018-04-16 · GWT & CDI. Google Web Toolkit • Create Ajax applications from Java sources • GWT SDK: Compiler, API, Tools • Creates highly optimized, portable

Example: Client managed conversation (2)

Page 19: GWT & CDI - JBoss · 2018-04-16 · GWT & CDI. Google Web Toolkit • Create Ajax applications from Java sources • GWT SDK: Compiler, API, Tools • Creates highly optimized, portable

Likeminded Technologies

Page 20: GWT & CDI - JBoss · 2018-04-16 · GWT & CDI. Google Web Toolkit • Create Ajax applications from Java sources • GWT SDK: Compiler, API, Tools • Creates highly optimized, portable

Related Technologies

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

• DataBinding• Widgets, Validation, Synchronization

• JMS• Ajax client as Topic Subscriber/Publisher

Page 21: GWT & CDI - JBoss · 2018-04-16 · GWT & CDI. Google Web Toolkit • Create Ajax applications from Java sources • GWT SDK: Compiler, API, Tools • Creates highly optimized, portable

Project and Roadmap

Page 22: GWT & CDI - JBoss · 2018-04-16 · GWT & CDI. Google Web Toolkit • Create Ajax applications from Java sources • GWT SDK: Compiler, API, Tools • Creates highly optimized, portable

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 - JBoss · 2018-04-16 · GWT & CDI. Google Web Toolkit • Create Ajax applications from Java sources • GWT SDK: Compiler, API, Tools • Creates highly optimized, portable

Questions?

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