5. 6.4
⢠6.0 Nov 2013
⢠6.4 2016
⢠Upgrade to Pattern Fly
⢠Fully redesign the execution server UI
⢠Improved and augmented process runtime views
6. KIE - Knowledge Is Everything
⢠Drools
⢠jBPM
⢠DashBuilder
⢠OptaPlanner
⢠UberFire
22. GWT 2.8 + Errai
⢠Client-side depending injection â¨
(consistent with CDI).
⢠Client-side templating.
⢠2-way data-binding with Pojos.
⢠Dynamic runtime modules.
⢠qualiďŹer annotations to determine
which dependencies.
⢠a bean satisďŹes.
⢠Constructor ďŹeld 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 ďŹles can be HTML fragments
or full pages.
⢠The HTML ďŹle is the template.
⢠The Java class is a template bean
⢠Data ďŹeld 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 notiďŹes 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