# License

All the software included in this distribution is distributed under Apache license V2

# Documentation

- 10 Minute Tutorial
- The User Guide
- Javadocs

# Links

- Activiti User Forum
- Activiti Developer Forum (for Activiti development itself)
- Activiti bug tracking system

A more elaborate collection of Activiti-links can be found on the Activiti Community page

# Activiti Release Notes

### Release Notes - Activiti - Version 6.0

## Sub-task

- [ACT-4203] - Make agenda configurable

## Bug

- [ACT-1708] - Combination of postgres and schema's is not working properly
- [ACT-4058] - Activiti-App cannot be deployed successfully to tomcat
- [ACT-4059] - In Activiti 6.0 UI idm-functional-group-mgmt.html references to IDM.SYSTEM-GROUP-MGMT.... instead of IDM.FUNCTIONAL-GROUP-MGMT....
- [ACT-4060] - Translation missing for IDM.FUNCTIONAL-GROUP-MGMT.POPUP.EDIT-TITLE in idm en.json for app UI
- [ACT-4100] - Missing getters/setters in Query & Entity
- [ACT-4122] - cannot start a process instance if history service is not enabled
- [ACT-4130] - Unused assignment and possible integer overflow
- [ACT-4153] - Inclusive gateway merge logic deletes executions of other process instances
- [ACT-4159] - CallActivityBehavior does not initialize modeled DataObjects.
- [ACT-4160] - CallActivityBehavior does not send a PROCESS_STARTED event
- [ACT-4161] - Incorrect execution included in process started event
- [ACT-4162] - Unable to retrieve the default variable description for a modeled DataObject
- [ACT-4165] - Extra Variables created in MultiInstance Activities
- [ACT-4191] - BPMNDI data not generated without sequence flows
- [ACT-4207] - BaseBpmnXmlParser doesn't support endDate attribute
- [ACT-4213] - Pools and Lanes in Draw tool not usable
- [ACT-4214] - Can not import models in Designer
- [ACT-4271] - Use String instead of Long in Models
- [ACT-4276] - Process instance variable deleting more then once in call activity
- [ACT-4277] - Starting a process by Timer start event or key does not appear on User interface
- [ACT-4279] - Mail task not working
- [ACT-4281] - Issues related to start timer event
- [ACT-4282] - Use H2 in Admin App by default
- [ACT-4283] - Ability to whitelist shell commands in Shell tasks

## New Feature

- [ACT-4116] - Custom subprocess parser for use with multi-diagram editor
- [ACT-4169] - ActivitiEvent.getProcessDefinitionId() is null for type VARIABLE_DELETED

## Task

- [ACT-4055] - Activiti 6 Beta 1 Upgrade Script for Oracle invalid identifier
- [ACT-4104] - Boundary message event isn't exported
- [ACT-4272] - Convert data types from Long to String

## Improvement

- [ACT-4127] - Fix (or remove) JobEntityManagerImpl#removeExectutionLink
- [ACT-4135] - increase accessibility of createXML method
- [ACT-4157] - Support querying executions by root process instance id
- [ACT-4158] - Add support for querying only subprocess executions
- [ACT-4163] - New DataObject DTO class for the Activiti public API
- [ACT-4268] - DMN Refactoring

### Release Notes - Activiti - 6.0.0.RC1

#### Highlights

- 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

#### Highlights

- 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.

#### Release remarks

- 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

#### Highlights

- 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.