因为5.13不支持globalTaskListener ,所以只好利用其他方法 模拟这种做法。
上代码:
spring 配置:
<!-- ParseHandler -->
<property name="customDefaultBpmnParseHandlers">
<list>
<bean
class="xxx.DelegateBPMNParserHandler" />
</list>
</property>
JAVA代码:
public class DelegateBPMNParserHandler extends UserTaskParseHandler {
private static Logger logger = LoggerFactory
.getLogger(DelegateBPMNParserHandler.class);
protected void executeParse(BpmnParse bpmnParse, UserTask userTask) {
logger.info("bpmnParse : {}, userTask : {}", bpmnParse, userTask);
super.executeParse(bpmnParse, userTask);
TaskDefinition taskDefinition = (TaskDefinition) bpmnParse
.getCurrentActivity().getProperty(PROPERTY_TASK_DEFINITION);
ActivitiListener activitiListener = new ActivitiListener();
activitiListener.setEvent(TaskListener.EVENTNAME_CREATE);
activitiListener
.setImplementationType(ImplementationType.IMPLEMENTATION_TYPE_DELEGATEEXPRESSION);
activitiListener.setImplementation("#{globalTaskListener}");
taskDefinition
.addTaskListener(TaskListener.EVENTNAME_CREATE, bpmnParse
.getListenerFactory()
.createDelegateExpressionTaskListener(activitiListener));
}
}