Activiti V6 notes
Joram Barrez edited this page May 19, 2016
·
14 revisions
- Performance measurements vs v5
- Review if async executor changes have been added to v5 embedded engine in v6
- Split (but first measure, of course) ACT_RU_JOB into table for timer and aync jobs
- Has been reported to do table scans on huge data sets
- Timer calculation with repeat is bit hard now. Switch to storing the previous executed date and calculate from there.
- Make storing of start/end time on historic elements consistent. Best with a unit test that verifies timings by moving the clock significantly and checking the start-end times accordingly.
- Store more information in the runtime tables
- initiator on process instance, start times, etc.
- task: claim time
- On upgrade .. this does mean copying existing data to the runtime?
- Add a new method that allows custom delegate logic to be executed after commit/command context close (eg sending an email, sending out a message ... only when commit has been successul). Attribute on servicetask/mail/execution listener/task listener... Important here is documentation with a custom receive behavior + messaging ...
- Review and fix DbSqlSession.optimizeDeleteOperations().
- Measure performance impact for postgres for example (for executions only). Doesn't work for mysql.
- Add layered delete if bulk delete doesn't seem to work.
- Remove the old job executor + document migration changes.
- Move behaviour from Model. Add a cache to store the behaviours. Behaviours should be instantiated once. Do the same for Execution Listeners. All should be instantiated once.
- Problem: what about seq flow without ids? --> add a unique id during parsing to store in the cache.
- Move to 4 spaces
- We did it, but then went back due to merge conflicts between v5 commits and v6
- Let's do it just before the final release
- Check deleteReason usage ánd provide interface with potential values
- Disable event firing by default. Enabled it when a listener gets registered
- Event listener if-enabled check needs to be applied everywhere
- More upgrade/compatibility tests
- Store assignee audit history
- Differentiate between task delete time and task completion time (similar for other concepts like process instance too)
- Transient variables
- Async history
- Instead of x rows, store one row with all info that gets processed later
- Easily portable to other async processing mechanisms (JMS, Redis, Hazelcast, etc)
- Async event logging (if async history is proven to be better performing)
- Similar to async history
- Multi instance variable mapper (might be a v5 thing too?)
- Dynamic tasks: add any task to the process instance on the root level
- Simplify job acquire queries by moving suspension state to job
- Add convenience methods to easily add an execution listener/task listener during parsing (now: hassle with ActivitiListener)
- Firing of execution listeners code is duplicated, should be consolidated
- Provide easier access to ExtensionElements (now it's quite low-level)
Documentation
- Migration Guide
- ActivityBehaviour package is changed
- CommandContextCloseListener interface change
- Context.getCommandContext.getTransactionContext -> now on Context
- DelegateExpression: default is MIXED (compatibility in v5)
- Doc migration: setAssignee/setOwner/resolve/delegate methods are gone in v6 for execution listener/script
- They do not set correct history
- Terminate Multi Instance (6 only feature)
- New interfaces (entityManagers and such) need to be javadocced
- Json variable needs to be documented
- EngineServices are removed. Should use ProcessEngineConfiguration.getRuntimeService for example.
- Rewrite user guide for v6.