Java 扩展Activiti流程引擎功能的首选方式是什么?

Java 扩展Activiti流程引擎功能的首选方式是什么?,java,business-process-management,extending,activiti,Java,Business Process Management,Extending,Activiti,Activiti是一个很有前途的业务流程引擎,许多组织已经开始使用Activiti开发业务流程管理系统 在我的案例中,我希望使用activiti开发一个满足特定业务需求的BPM系统,但是activiti引擎功能仅涵盖我业务需求的70%左右 我想添加的大多数业务需求与bpmn无关。我已决定通过解决办法来增加我的特定业务需求 问题是,扩展Activiti流程引擎功能的首选方式是什么 目前我有两个常规选择: 直接更改activiti源代码。我应该直接编辑源代码实现类吗?这会更快,但这不会让升级到新版本

Activiti是一个很有前途的业务流程引擎,许多组织已经开始使用Activiti开发业务流程管理系统

在我的案例中,我希望使用activiti开发一个满足特定业务需求的BPM系统,但是activiti引擎功能仅涵盖我业务需求的70%左右


我想添加的大多数业务需求与bpmn无关。我已决定通过解决办法来增加我的特定业务需求

问题是,扩展Activiti流程引擎功能的首选方式是什么

目前我有两个常规选择:

  • 直接更改activiti源代码。我应该直接编辑源代码实现类吗?这会更快,但这不会让升级到新版本变得更困难吗?或者我应该扩展和包装一些实现类吗?这种选择不会导致意外的行为吗

  • 将activiti引擎用作依赖项,然后通过扩展和包装一些实现类来添加新功能。另一种选择是使用完全独立的数据模型在activiti引擎之外添加扩展。我不知道什么是更好的适应方式


  • 你的意见是什么?

    最快的选择是找到一份工作,然后等到它在activiti上

    另一个选项是查找businessTask,它在Activiti中实现(http://activiti.org/userguide/#bpmnBusinessRuleTask). 这将使您“深入”activiti和BPMN,它们具有作为标准的优势

    如果您仍然想扩展它,我认为不把代码弄乱是更有意义的。如果您直接修改代码,升级到较新的Activiti版本将非常复杂。此外,您不会在其他人已经测试过的代码中引入bug


    你没有说你需要什么样的需求,但我认为大多数人认为BPMN应该是可行的。您还可以在activiti论坛上寻求更多具体帮助。

    我想添加的大多数业务需求与bpmn无关。我已决定通过解决办法来增加我的特定业务需求。如果我直接编辑源代码实现类,速度会更快,但这不会使升级到新版本更加困难。或者我应该扩展和包装一些实现类,但是这个选择不会导致意外的行为吗。另一种选择是使用完全独立的数据模型在activiti引擎之外添加扩展。我不知道什么是更好的适应方式。更新了关于你评论的答案