Activiti 是一个很有前途的业务流程引擎,许多组织已经开始使用 activiti 开发业务流程管理系统。
就我而言,我想使用 activiti 开发一个 BPM 系统来满足特定的业务需求,但是 activiti 引擎的功能只涵盖了我大约 70% 的业务需求。
我要添加的大多数业务需求都与 bpmn 无关。我决定通过解决变通办法来添加我的特定业务需求。
问题是,扩展 Activiti 流程引擎功能的首选方式是什么?
目前我有两个一般选择:
直接更改activiti源代码。我应该直接编辑源代码实现类吗?那会更快,但这不会使升级到新版本变得更加困难吗?或者我应该扩展和包装一些实现类?这种选择不会导致意想不到的行为吗?
使用 activiti 引擎作为依赖,然后通过扩展和包装它的一些实现类来添加新功能。另一种选择是在 activiti 引擎之外添加完全独立的数据模型的扩展。我不知道什么是首选的适应方式。
你有什么意见?