`
wangmingyue
  • 浏览: 43492 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

activiti5.13 globalTaskListener 实现

 
阅读更多

因为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));
}

}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics