package com.mossle.bpm.behavior; import com.mossle.bpm.behavior.usertask.CustomParallelMultiInstanceBehavior; import com.mossle.bpm.behavior.usertask.CustomUserTaskActivityBehavior; import org.activiti.bpmn.model.UserTask; import org.activiti.engine.impl.bpmn.behavior.AbstractBpmnActivityBehavior; import org.activiti.engine.impl.bpmn.behavior.ParallelMultiInstanceBehavior; import org.activiti.engine.impl.bpmn.behavior.UserTaskActivityBehavior; import org.activiti.engine.impl.bpmn.parser.factory.DefaultActivityBehaviorFactory; import org.activiti.engine.impl.pvm.process.ActivityImpl; import org.activiti.engine.impl.task.TaskDefinition; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class CustomActivityBehaviorFactory extends DefaultActivityBehaviorFactory { private static Logger log = LoggerFactory .getLogger(CustomUserTaskActivityBehavior.class); // test public UserTaskActivityBehavior createUserTaskActivityBehavior( UserTask userTask, TaskDefinition taskDefinition) { log.info("change usertask Behavior : {} ", userTask); return new CustomUserTaskActivityBehavior(taskDefinition); } // test multiInstance public ParallelMultiInstanceBehavior createParallelMultiInstanceBehavior( ActivityImpl activity, AbstractBpmnActivityBehavior innerActivityBehavior) { return new CustomParallelMultiInstanceBehavior(activity, innerActivityBehavior); } // 同样可以覆盖别的方法,加入其他元素的自定义行为,参考 @see ActivityBehaviorFactory // 该类控制执行到某一元素时触发 }