Search in sources :

Example 1 with TaskListenerInvocation

use of org.activiti.engine.impl.delegate.invocation.TaskListenerInvocation in project Activiti by Activiti.

the class ListenerNotificationHelper method executeTaskListeners.

public void executeTaskListeners(UserTask userTask, TaskEntity taskEntity, String eventType) {
    for (ActivitiListener activitiListener : userTask.getTaskListeners()) {
        String event = activitiListener.getEvent();
        if (event.equals(eventType) || event.equals(TaskListener.EVENTNAME_ALL_EVENTS)) {
            BaseTaskListener taskListener = createTaskListener(activitiListener);
            if (activitiListener.getOnTransaction() != null) {
                planTransactionDependentTaskListener(taskEntity.getExecution(), (TransactionDependentTaskListener) taskListener, activitiListener);
            } else {
                taskEntity.setEventName(eventType);
                taskEntity.setCurrentActivitiListener(activitiListener);
                try {
                    Context.getProcessEngineConfiguration().getDelegateInterceptor().handleInvocation(new TaskListenerInvocation((TaskListener) taskListener, taskEntity));
                } catch (Exception e) {
                    throw new ActivitiException("Exception while invoking TaskListener: " + e.getMessage(), e);
                } finally {
                    taskEntity.setEventName(null);
                    taskEntity.setCurrentActivitiListener(null);
                }
            }
        }
    }
}
Also used : ActivitiException(org.activiti.engine.ActivitiException) TaskListenerInvocation(org.activiti.engine.impl.delegate.invocation.TaskListenerInvocation) BaseTaskListener(org.activiti.engine.delegate.BaseTaskListener) BaseTaskListener(org.activiti.engine.delegate.BaseTaskListener) TaskListener(org.activiti.engine.delegate.TaskListener) TransactionDependentTaskListener(org.activiti.engine.delegate.TransactionDependentTaskListener) ActivitiListener(org.activiti.bpmn.model.ActivitiListener) ActivitiException(org.activiti.engine.ActivitiException)

Aggregations

ActivitiListener (org.activiti.bpmn.model.ActivitiListener)1 ActivitiException (org.activiti.engine.ActivitiException)1 BaseTaskListener (org.activiti.engine.delegate.BaseTaskListener)1 TaskListener (org.activiti.engine.delegate.TaskListener)1 TransactionDependentTaskListener (org.activiti.engine.delegate.TransactionDependentTaskListener)1 TaskListenerInvocation (org.activiti.engine.impl.delegate.invocation.TaskListenerInvocation)1