Activiti源码浅析:Activity与Task

本文深入探讨了Activiti工作流引擎的源码,重点解析了model.Activity与model.Task、task.Task与task.TaskDefinition之间的关系,以及Expression在Activiti中的应用。详细阐述了ExpressionManager如何创建和管理表达式,并列举了多种表达式用法示例。此外,还揭示了task.Task执行过程,特别是UserTask的执行步骤,包括如何根据TaskDefinition构造Task对象并计算相关属性。
摘要由CSDN通过智能技术生成

最近由于接触到Activiti工作流引擎,因此粗读了一下它的源码。

总结了一些内容如下,这些内容一般的doc上都是没有提及的。

1. model.Activity与model.Task

Activity是模型时期对象(想想BPMN文件的那些元素),它有3个子类:CallActivity, SubProcess, Task(注意是
  • org.activiti.bpmn.model.Task
流程启动的那个活动可以理解成有一个StartEventActivity
Task有N个子类:BusinessRuleTask, ManualTask, ReceiveTask, ScriptTask, SendTask, ServiceTask, UserTask

PvmActivity是部署时期对象,ActivityImpl是它的实现类,注意ActivityImpl与Activity没有关系!获取ActivityImpl的方法:

	public static ActivityImpl getActivity(ProcessEngine processEngine, String processDefId, String activityId)
	{
		ProcessDefinitionEntity pde = (ProcessDefinitionEntity) ((RepositoryServiceImpl) processEngine
				.getRepositoryService()).getDeployedProcessDefinition(processDefId);
		return (ActivityImpl) pde.findActivity(activityId);
	}

ActivityImpl.getActivityBehavior()可以获取到对应的ActivityBehavior
ActivityBehavior很显然不是一种模型设计时期的对象
TaskActivityBehavior是一种类型的ActivityBehavior

2. task.Task与task.TaskDefinition

model.Task是模型时期的,task.TaskDefinition是部
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值