Improved Model Execution
This release holds 2 major improvements to the execution of the CMMN language.
Order of model creation is no longer relevant
In the Cafienne IDE we can draw case models. Underneath these are stored in XML documents. The order of drawing in the model gets reflected in the underlying XML document. Until this release, that order might impact the actual model execution. Two models, that look exactly the same but with a different underlying XML ordering might result into different executions by the engine. This has been fixed in this release.
Preciser implementation of repetition rule evaluation
The repetition rule definition inside the CMMN specification was drastically sharpened between CMMN1.0 and CMMN1.1.
Nonetheless, the specification does not say anything on specifics of actual instances, leading to unexpected and counter-intuitive behavior of the Cafienne Engine. This plays especially when a plan item terminates it's surrounding repeating stage: the engine then terminated all stages instead of just the one that holds the plan item. An initial fix for this has been added to this release.
The external dependencies have been upgraded to latest versions. To name a few:
- Akka is now on 2.6.4
- Scala moved to 2.12.11
- Microsoft SQL Server JDBC driver moved to 8.2.2
- Major overhaul of internal Akka use. Removed redundant code across handling commands and recovery events in the actors.
- The internal engine test framework has been refactored to make the engine internal test cases a little more readible.
- Some additional log message content upon failure scenarios, to enable faster cause analysis.
- Build street infrastructure has changed, to include testing on various persistence configurations before a release can be published. This is now done against the following combinations:
- In memory database (like before)
- Cassandra as event store, and PostgreSQL as query database
- PostgreSQL as event store as well as query database
- Microsoft SQL Server as event store and query database
|85||Repetitionrule implementation gives issues|
|83||Fetching a non-existing Task from database chokes the TasksProjectionsWriter|
|82||When a route HTTP error happens, it should log the HTTP method next to the URL|
|81||If user is not registered in tenant, the error message should have quotes around tenant name|
|79||Log file should not contain task search failure exceptions|
|78||When removing a tenant role from a not-existing user, we should not get a nullpointerexception|
|75||Running travelrequest case from docker gives strange errors|
|70||When assigning task dynamically, task owner is no longer filled|
|69||SMTPCall does not send attachments anymore|
|67||Recovery of RequiredRuleOutcome overwrites repetition rule value|