activiti核心引擎

本文详细介绍了Activiti核心引擎中ExecutionEntity的重要方法,如take、executeActivity以及performOperation系列方法。执行流程涉及多个AtomicOperation,如PROCESS_START、ACTIVITY_START、ACTIVITY_EXECUTE等,构成了责任链模式。同时提到了BpmnActivityBehavior的performDefaultOutgoingBehavior方法及startProcess的过程,展示了流程启动和活动执行的内部机制。

org.activiti.engine.impl.persistence.entity.ExecutionEntity  核心的方法

public void take(PvmTransition transition)  执行跳转转换的方法

public void executeActivity(PvmActivity activity)  执行activity的方法

public void performOperation(AtomicOperation executionOperation)  

protected void performOperationSync(AtomicOperation executionOperation)

public void start()

执行构成一个责任链模式,依次调用

 AtomicOperation PROCESS_START = new AtomicOperationProcessStart();
  AtomicOperation PROCESS_START_INITIAL = new AtomicOperationProcessStartInitial();
  AtomicOperation PROCESS_END = new AtomicOperationProcessEnd();
  AtomicOperation ACTIVITY_START = new AtomicOperationActivityStart();
  AtomicOperation ACTIVITY_EXECUTE = new AtomicOperationActivityExecute();
  AtomicOperation ACTIVITY_END = new AtomicOperationActivityEnd();
  AtomicOperation TRANSITION_NOTIFY_LISTENER_END = new AtomicOperationTransitionNotifyListenerEnd();
  AtomicOperation TRANSITION_DESTROY_SCOPE = new AtomicOperationTransitionDestroyScope();
  AtomicOperation TRANSITION_NOTIFY_LISTENER_TAKE = new AtomicOperationTransitionNotifyListenerTake();
  AtomicOperation TRANSITION_CREATE_SCOPE = new AtomicOperationTransitionCreateScope();
  AtomicOperation TRANSITION_NOTIFY_LISTENER_START = new AtomicOperationTransitionNotifyListenerStart();


  AtomicOperation DELETE_CASCADE = new AtomicOperationDeleteCascade();
  AtomicOperation DELETE_CASCADE_FIRE_ACTIVITY_END = new AtomicOperationDeleteCascadeFireActivityEnd();



org.activiti.engine.impl.bpmn.behavior.BpmnActivityBehavior  的public void performDefaultOutgoingBehavior(ActivityExecution activityExceution) 方法



startProcess的方法

1.AtomicOperation.PROCESS_START的execute()方法

2.AtomicOperation PROCESS_START_INITIAL = new AtomicOperationProcessStartInitial()的execute()方法

3.如果有activity,则AtomicOperation ACTIVITY_EXECUTE = new AtomicOperationActivityExecute();

执行activity

4.org.activiti.engine.impl.pvm.runtime.AtomicOperationActivityExecute中的execute()方法.找到ActivityBehavior,执行execute()方法




executeActivity(PvmActivity activity) 

1.AtomicOperation.ACTIVITY_START的execute()方法

2.AtomicOperation.ACTIVITY_EXECUTE的execute()方法


调用AtomicOperation的execute()实现责任链模式






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值