Flowable 6.5.0 release
GENERAL
- 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.
BPMN
- Added support for Event Registry start events to trigger starting a process instance with an incoming event.
- An Event Registry boundary event has been added to support triggering a running process instance with an incoming event, with correlation and tenant detection support.
- Added an Event Registry send event task to support sending events from a process instance and optionally listening for a response event using the triggerable task support.
- The process instance migration support has been enhanced with supporting batch migration. Migrating a process definition with all its running instances to a new process definition is now possible with one batch, where each instance migration will be a batch part of a parent batch.
- Support has been added for Kubernetes and HELM charts in specific. For more details see the Github documentation about this https://github.com/flowable/flowable-engine/tree/master/k8s
- With historic information growing bigger over time, a way to cleaning this historic information was necessary. For this purpose a history cleaning job was added that can be configured to clean historic information older than a configured time period.
- To support the history clean job, delete methods have been added to the history query interfaces to also allow to delete historic data with other criteria than just time period based parameters.
- The mail task has been enhanced with support for sending content items as attachments.
CMMN
- Added support on a Case definition root level to listen for incoming events to start a new case instance.
- An Event Registry event listener has been added to support triggering a running case instance with an incoming event, with correlation and tenant detection support.
- Added an Event Registry send event task to support sending events from a case instance.
- Added support to inject a Stage or a specific Task in a Stage instance of a running case instance. In this way a CMMN model can be enriched with new Stage or Task logic for a specific case instance.
- Java Collection support has been added to repetition rules for plan items. This is similar to the Java Collection support for BPMN multi-instance constructs. A Java Collection variable or an expression can be used to define a repetition rule.
- Enriched the support for evaluating if a Stage can be completed. On a plan item a parent completion rule can be defined with a type that matches the desired evaluation logic.
- The support for expressions in a case instance has been extended. It's now possible to get a count value for all active plan item instances of a specific definition for example with the following expression: ${planItemInstances.definitionId('a').active().count()}. The CMMN documentation has been updated with all options possible.
- A mail task has been added to the CMMN engine (similar as the one in the BPMN engine) with support for sending content items as attachments.
EVENT REGISTRY
- A new engine was added with the regular deployment and deployment resources support to follow the pattern of the other engines.
- Support for Event definitions which define the event payload, the channel definition to use, and the optional correlation parameters of an incoming or outgoing event. The BPMN start event, boundary event or send task or the CMMN Case element or event listener are linked to an Event definition based on a logical key, like it's also the case for, for example, BPMN call activities and CMMN case tasks.
- Support for Channel definitions which define the source or target destination, with a specific adapter type (JMS, Kafka or RabbitMQ by default). Also an event key detection and an optional tenant id detection configuration can be provided. An Event definition links to a Channel definition based on the Channel logical key.
- When using the Event Registry Spring module, there are 3 out-of-the-box adapters supported, JMS, Kafka and RabbitMQ.
DMN
- Added support for DMN 1.2, which is the revision of the DMN 1.1 specification. The Collect hit policy logic was changed to not only consider unique outcome values but every outcome value for which the rule was hit. This was changed in the DMN 1.2 specification version.
ADDITIONAL
- In this release an upgrade to Spring Boot 2.2.2 and Spring 5.2.2 was done. This is the last release where we have official support for Spring Boot 1.5.x and Spring 4.x. Starting from the next release this will not be officially supported anymore.