Added a new Event Registry engine which provides functionality to use Flowable in event driven architectures and has out-of-the-box support for JMS, Apache Kafka and RabbitMQ.
Events can be received by BPMN start events, boundary events and triggerable send event tasks. In CMMN receiving events is supported by event listeners and for starting new case instances. Both engines also provide a send event task to send out an event to the event adapter implementation.
To improve the support for running Flowable on multiple servers / nodes a new option was added to use a lock for creating the database schema and for executing the auto deployments at bootup. This ensures that when starting multiple servers / nodes at the same time, creating the database schema and doing the auto deployment of CMMN XML and BPMN XML files etc only happens on one server / node at the same time.
A new Batch service was added to support executing multiple jobs in one batch, where each job is a batch part. The first usage of the Batch service is the support for batch process instance migration, but the Batch service is designed to support many use cases.
A first version of the Logging Session support has been added, which provides a full insight in the execution of case and process instances with all its child entities like tasks, variables, event subscriptions etc. This can be useful for debugging purpose, problem detection in production environments or for audit purposes.
The variable service has been enriched to support java.time.Instant, java.time.LocalDate and java.time.LocalDateTime as additional variable types. When using these Object types as a variable they will not be stored as serializable anymore, but with a timestamp value and when used transformed into the correct Object type.
Various small bugfixes and improvements all around.