22. GWT 2.8 + Errai
• Client-side depending injection
(consistent with CDI).
• Client-side templating.
• 2-way data-binding with Pojos.
• Dynamic runtime modules.
• qualifier annotations to determine
which dependencies.
• a bean satisfies.
• Constructor field and setter injections.
• More CDI and EJB features:
• @Alternative, @Specializes,
@Produced scopes, CDI Events, JPA,
…
• Injecting native Javascript objects into
doc with JSInterop.
• Support for native DOM-based UI
• support for GWT 2.8 + Java8.
23. Errai UI
• Bind Java class elements to elements
in an HTML template.
• Template files can be HTML fragments
or full pages.
• The HTML file is the template.
• The Java class is a template bean
• Data field can be @Bound to the model
and automatically updated
62. FIRE_UNTIL_HALT FIRE_ALL_RULES
sync(queueLock)
RestHander.FIRE_UNTIL_HALT
head = takeAll()
queueLock.wait()
head == null &&
state == FIRE_UNTIL_HALT
true
return head
false
head = takeAll()
The thread will
sleep until the
addEntry notifies it
to wake up
sync(engineLock)
RestHander.FIRE_ALL_RULES
head = takeAll()
state = INACTIVE
head == null
true
return head
false
63. WaitAndEnter immediateHalt
state!=INACTIVE
True
true
engineLock.wait()
state = newState
waitAndEnter(newState)
The thread will sleep until the
immediateHalt is called which
calls the engineLock.notify.
Note this method must always be called from
inside of a sync(engineLock) block.
immedateHalt()
sync(engineLock)
state!=INACTIVE
false
true
state = INACTIVE
engineLock.notify()
This will wake any threads currently
waiting in the waitAndEnter method.
81. DRLX
• Java super-set
• Java pre-processing using Antlr Java8.g
• Similar approach to pizza language that gave us generics
• Will output pojo-rules underneath
• But be more succinct and friendly that poco-rules