Release candidate including several bug fixes and improvements.
Release Notes - Activiti - 6.0.0.Beta4
Bug fix release
There was an issue with the Oracle and SQL Server upgrade scripts and Beta4 is a bug fix release for it.
Release Notes - Activiti - 6.0.0.Beta3
Introduction of 2 new engines, a DMN (Decision Model Notation) Rule Engine and a Form Engine.
The DMN Engine allows you to create decision tables and get an outcome based on the input values and the rules defined in the decision table.
These decision tables can be invoked from a decision rule task in a BPMN definition, but also independently of a process instance.
The Form Engine centralizes the form logic that was introduced with the new Activiti 6 UI. Forms can be deployed with BPMN process definitions but also seperately.
A start or task form references a form definition defined in a JSON format with a logical key. The Activiti 6 UI includes the new Rule Engine and Form Engine by default.
Ad-hoc sub process support was added.
The job executor has been refactored. In Activiti 6 there's only one job executor (based on the async executor from Activiti 5. Jobs are now divided into 4 different tables:
executable jobs, timer jobs, suspended jobs and deadletter jobs. All jobs in the executable jobs table can be executed as soon as possible.
Timer jobs are now stored in a separate table and a thread will look for timer jobs that are due and then the timer jobs due will be moved to the executable jobs table.
When a process instance is suspended, the suspended jobs will be moved to the suspended jobs table.
And when the retries of a job have been exhausted, the job will be moved to the deadletter jobs table.
This refactoring was done mainly to improve the job queries, that were very complicated because it had to take into account due timer jobs, suspended jobs and deadletter jobs.
The job query to look for executable jobs is now a lot less complex, because every job in the executable jobs table needs to execute.
Implementation of a message queue based Activiti job executor.
Introduction of transient variables. Transient variables won't be persisted in the Activiti variable tables, but are still available on the execution for the duration of a single transaction.
Transient variables can for example be used to store a REST response that is only needed to create a request to another REST service, or to use a Java service task result in the next Java service task without it getting persisted.
Introduction of two new experimental performance flags: 'eager execution tree fetching' will fetch a complete execution tree while fetching a part of a process instance,
as typically following parts of the tree are needed when continuing a process instance. 'Execution relationship counting' keeps a count of various related objects to an execution
and thus removes the need for explicit checking and deleting related objects when an execution is removed (which happens frequently).
First performance benchmarks using these flags gave some great results. The flags have been tested against the Activiti test suite and all test pass, but the flags are currently not enabled by default.
Introduction of transaction dependent listeners. You can now register a listener which will be executed before commit, after commit or on rollback.
The transaction dependent listener is an addition to the already existing execution, task and event listeners and provides more ways to listen to the execution of a process instance in the Activiti Engine.
A simple DMN editor has been added to the Activiti 6 UI app
Added terminate multi instance end behaviour: this allows to use an end event that will end all instances of a multi instance.
Optimize the compensation activity behaviour and added support for the use of subprocesses as compensation activity.
Expose start time and start user id on runtime process instance and executions. Expose claim time on runtime task. Before: only on historical counterpart.
Fix the use of database schema's (oracle/postgres) properly (workarounds were needed before).
Fix historical data capturing (vs Beta2 especially, but also against certain v5 cases).
Lots of refactoring in the Activiti 6 UI app, for example app definitions are now deployed as normal Activiti deployments without separate app definition tables
Lots of improvements to Activiti 6 QA
Various and many small bugfixes all around.
The Activiti 6 Engine is now considered feature complete for a final version 6 release and mainly needs community testing and bug fixes when issues are found
A first refactor of the userguide has been completed for version 6, but there's still work left
A lot of changes were made to the Activiti 6 UI app and we expect there will still be breaking changes before the final version 6 release
The DMN and Form Engine are feature complete but there can still be some changes before the final version 6
An Admin application has been added to the Activiti Github project but is not yet included in the Beta 3 release.
The Admin application will provide query capabilities on deployments, process instances, tasks, jobs, forms and decision tables.
For the final version 6 release the Admin application will be added to the release
Release Notes - Activiti - 6.0.0.Beta2
We've seriously refactored the persistence logic of the engine, making the persistence layer completely pluggable!
Refactored the BpmnDeployer class and related logic to allow for easier pluggability/extensibility.
Refactored the internal execution tree structure when using multi instance behavior: there will now always be one execution to demarcate the 'scope' of the multi instance. This opens up future use cases (storing variables on that scope only, terminating only one instance or all, etc.)
Extended the 'terminate all event' behaviour to cover more use cases and be fully consistent with the BPMN spec. Also,
Added the DynamicBpmnService.
Various and many small bugfixes all around.
Release Notes - Activiti - 6.0.0.Beta1
First public release of the new major version of Activiti. We are looking for feedback from the community, particularly to test the Activiti 5 compatibility.
We removed the Vaadin based Activiti Explorer from this release and it's replaced with a fully new Angular UI application.
For more details about the Activiti 5 to 6 migration you can read the migration.html file in the docs/userguide folder.