activiti流程运行过程代码走读

1. 目的

本文将对流程在activiti中是怎么运行的,任务是怎样推动的进行讲解。

主要包括以下内容:

  1. PVM中怎么表示流程、任务、连接线,它和activiti的Model怎样转换的。

  2. 启动流程实例,怎么从开始节点流转到下一个节点。

  3. 怎样监听流程事件。

2. 主要的jar包和java类

pvm的实现在包org.activiti.engine.impl.pvm中,我通过源码跟踪、阅读,分析出PVM有以下重要的类:

class 功能
ProcessDefinitionImpl 流程定义
ExecutionEntity 管理流程的运行
ActivityImpl 流程节点的定义
AtomicOperation 流程运行方法,如:<br/> AtomicOperationActivityStart(流程启动),<br/> AtomicOperationActivityEnd(流程结束)
ActivityBehavior 委托

2.1 在哪定义的

2.1.1 ProcessDefinitionImpl

ProcessDefinitionImpl是PVM对整个流程定义。通过ProcessDefinitionImpl.createProcessInstance可以得到流程实例管理接口PvmProcessInstanceProcessDefinitionImpl的代码片段如下:

   public class ProcessDefinitionImpl extends ScopeImpl implements PvmProcessDefinition {

     private static final long serialVersionUID = 1L;

     protected String name;
     protected String key;
     protected String description;
     protected ActivityImpl initial;
     protected Map<ActivityImpl, List<ActivityImpl>> initialActivityStacks = new HashMap<ActivityImpl, List<ActivityImpl>>();
     protected List<LaneSet> laneSets;
     protected ParticipantProcess participantProcess;

     public ProcessDefinitionImpl(String id) {
       super(id, null);
       processDefinition = this;
     }

     public PvmProcessInstance createProcessInstance() {
       if(initial == n
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值