Activiti 5.12发布
1. 5.12版本重要改变
- 在Activiti Explorer中添加了基于Javascript的流程图查看功能,由Raphaël提供画图支持,支持全部浏览器;这个功能是我在5.11版本发布之后提出的,后来Tijs说让我帮忙做一个,最后用jQuery实现了(和kft-activiti-demo里面的跟踪效果一样,后来tijs告诉我有人在做了,所以我就取消了这个任务),效果图在下面。
- 统一了BPMN解析,可以应用于引擎、Activiti Designer、Activiti Modeler。
- 添加Activiti Kickstar到Activiti Explorer,让不懂BPMN规范的人也可以设计简单流程(设计的流程都是顺序流,设计的时候不要在assignee<办理人>字段填写值,否则会报错)。办理人>
- 简化并扩充了Activiti Camel模块。
- 在Activiti Explorer中添加了报表功能,可以以用户、任务、流程等维度生成图形报表。
- 添加auto-layout模块,可以应用与KickStart和Modeler(还未验证)。
- 添加了针对Script Task的Execution监听解析。
- 支持流程定义缓存,可以减少数据库读取。
- 一些其他的Bug修复。
2. 详细Release Notes
Sub-task
- [ACT-1565] - activiti-bpmn-converter BaseBpmnXMLConverter ignores defaultFlow for Gateways
Bug
- [ACT-863] - HistoricVariableUpdate#getValue() throws NPE for JPA entities
- [ACT-995] - Not possible to update/overwrite a JPA entity in workflow
- [ACT-1025] - Methods deleteDeployment(String deploymentId, ...) and deleteDeploymentCascade(String deploymentId, ...) do not throw an exception with passed a non-existent deployementId
- [ACT-1026] - Inclusive gateway isn't properly joining sequence flows coming from call activities
- [ACT-1040] - TaskManager.findTaskById does not utilize session cache
- [ACT-1054] - Unable to complete user task coming from parallel gateway
- [ACT-1196] - Invalid login screen localization on non-utf-8 based hosts
- [ACT-1204] - InclusiveGateway with two subprocesses does not join correctly
- [ACT-1317] - Wrong task event generated when setting assignee to null
- [ACT-1345] - method name orderByHistoricActivityInstanceStartTime in class HistoricTaskInstanceQuery should be orderByHistoricTaskInstanceStartTime
- [ACT-1372] - User Task with form: form will be not displayed if the value expression in next line used
- [ACT-1377] - removeVariables() in VariableScopeImpl does not consider parent scopes
- [ACT-1414] - ClassCastException when completing a referenced sub process after Boundary Event with cancelActivity = false
- [ACT-1417] - Fix Explorer session serialization
- [ACT-1418] - NullPointerException if throw a not catched exception/error
- [ACT-1470] - Import definition type fails with CxfWSDLImporter when using complex data types
- [ACT-1477] - In user guide error api for form property from history detail
- [ACT-1479] - activiti-engine has invalid symbolic name
- [ACT-1486] - The ability to add an attachment to a process instance is broken
- [ACT-1494] - Get garbled string when render form in chines
- [ACT-1499] - Form properties not initialized when null or empty
- [ACT-1502] - Custom font name in the engine for diagram
- [ACT-1504] - Cannot create new user and membership in JavaDelegate using identityService
- [ACT-1512] - HistoricVariableUpdates no longer returned when using postgres
- [ACT-1516] - BPMN Converter: Adding a listener to a script task produces erroneous XML content.
- [ACT-1524] - Variable update detection does not work for byte[]
- [ACT-1528] - All variables are deleted after delete a history processinstance
- [ACT-1533] - Undeployment of old process versions deletes jobs for TimerStartEvents
- [ACT-1540] - HistoricVariableInstance does not expose taskId, nor does HistoricVariableQuery expose querying based on taskId
- [ACT-1546] - Impossible to assign default flow on exclusive gateways
- [ACT-1553] - Refactor BpmnParse to use separate handlers for each bpmn element
- [ACT-1555] - ProgrammaticBeanLookup doesn't regard alternatives
- [ACT-1556] - BpmnDeployer creates duplicates identity links when deploying processes with initiation authorization active
- [ACT-1579] - Process engine can be DoS'ed when deploying unsafe XML
- [ACT-1586] - ExecutionQuery returns wrong results when using multi instance on a receive task
- [ACT-1596] - Not generated boundary event in diagram created by Raphaël
Improvement
- [ACT-1274] - Remove SEVERE level logging for expected exception in taskservice.claim()
- [ACT-1324] - Add specific exceptions for common error scenarios (TaskNotFoundException if a task if not found etc)
- [ACT-1463] - Review rest-response codes and error-body response
- [ACT-1498] - IntermediateCatchEventActivitiBehaviour name does not match other ActivityBehavior's
- [ACT-1505] - Should throw an exception if the picture is not generated
- [ACT-1561] - Add the ability to register a TaskListener for all event types
- [ACT-1568] - Query API documentation out of sync with codebase
New Feature
- [ACT-432] - Terminate end event
- [ACT-1164] - Add possibility to hook in own implementation of BusinessRuleTask
- [ACT-1493] - Make DeploymentCache pluggable and allow to set cache limit
- [ACT-1511] - Extract ActivityBehavior and Task/ExecutionListener instantiation in a pluggable factory
- [ACT-1518] - Add generic simple workflow creator API to activiti
- [ACT-1537] - Allow to configure whether script variables are stored as process variables
- [ACT-1569] - Introduce process instance scope for signal events
- [ACT-1571] - Auto layout for BPMN 2.0 processes
- [ACT-1572] - Designer should generate XML with delegationExpression
- [ACT-1574] - Loop type for subprocess in Modeler
- [ACT-1580] - Add method to retrieve BpmnModel (Pojo version of BPMN 2.0 process) to RepositoryService
- [ACT-1588] - Native query support paging
- [ACT-1593] - Basic reporting for Explorer
Task
- [ACT-1031] - Rename JobQuery methods
- [ACT-1397] - Remove Account related service operations from IdentityService
- [ACT-1465] - Document services in userguide
- [ACT-1538] - Move BpmnParseListener to public API package
- [ACT-1581] - Refactor ProcessDiagramGenerator to take BpmnModel as input instead of ProcessDefinitionEntity
Wish
- [ACT-1362] - Extend JPAEntityMappings to support UUID as Id
3. 值得关注的重要Bug及新功能
- 移除了org.activiti.engine.impl.bpmn.parser.BpmnParseListener以及相关类,取而代之的是在引擎中配置实现监听器触发方式,在用户手册的第17章有详细介绍。
- 在5.11版本中最严重的一个Bug应该属于ACT-1528,当删除一个流程实例时这个Bug会导致整个ACT_HI_VARINST表被清空!!! 如果使用5.11的建议升级到5.12,或者自己打补丁。
- 自动生成的图片导致中文乱码,这个问题在5.12里面我已经彻底解决了,解决办法是在引擎里面配置属性activityFontName,配置成中文字体的文件名就可以了。
- 支持终止结束事件。
- Native Query是在5.11版本中添加的,很好的解决了固定API查询不够灵活的问题,但是不支持分页查询,只能自己在sql中添加分页语句与参数;在5.12版本发布之前我提交了支持分页查询的代码,代码也合并到了master分支,但是在发布之前又还原了(因为不支持db2与sqlserver分页),我又紧急修复提交,可惜最终没有合并到5.12中,不过5.12发布之后我发布了5.12.1版本用于弥补这一遗憾(后面公布地址)。
4. 我的Activiti分支5.12.1
4.1 Maven仓库
使用Maven的方式发布,托管在Github,在仓库中添加如下配置:
<repository>
<id>henryyan-mavenrepo</id>
<url>https://raw.github.com/henryyan/mavenrepo/master/releases</url>
</repository>
4.2 直接下载源码
- activiti-engine-5.12.1.jar
- activiti-bpmn-model-5.12.1.jar
- activiti-bpmn-converter-5.12.1.jar
- activiti-spring-5.12.1.jar
5. 对5.13版本的期待
支持更多BPMN2.0规范!!!
6. 附图