Search in sources :

Example 1 with MessageThrowingEventListener

use of org.activiti.engine.impl.bpmn.helper.MessageThrowingEventListener in project Activiti by Activiti.

the class MessageThrowingEventListenerTest method testThrowMessageInterrupting.

@Deployment
public void testThrowMessageInterrupting() throws Exception {
    MessageThrowingEventListener listener = null;
    try {
        listener = new MessageThrowingEventListener();
        listener.setMessageName("Message");
        processEngineConfiguration.getEventDispatcher().addEventListener(listener, ActivitiEventType.TASK_ASSIGNED);
        ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("testMessage");
        assertNotNull(processInstance);
        // Fetch the task and re-assig it to trigger the event-listener
        Task task = taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult();
        assertNotNull(task);
        taskService.setAssignee(task.getId(), "kermit");
        // Boundary-event should have been messaged and a new task should be available,  the already
        // existing one should be removed, since the cancelActivity='true'
        task = taskService.createTaskQuery().processInstanceId(processInstance.getId()).taskDefinitionKey("subTask").singleResult();
        assertNull(task);
        Task boundaryTask = taskService.createTaskQuery().processInstanceId(processInstance.getId()).taskDefinitionKey("boundaryTask").singleResult();
        assertNotNull(boundaryTask);
    } finally {
        processEngineConfiguration.getEventDispatcher().removeEventListener(listener);
    }
}
Also used : Task(org.activiti.engine.task.Task) MessageThrowingEventListener(org.activiti.engine.impl.bpmn.helper.MessageThrowingEventListener) ProcessInstance(org.activiti.engine.runtime.ProcessInstance) Deployment(org.activiti.engine.test.Deployment)

Example 2 with MessageThrowingEventListener

use of org.activiti.engine.impl.bpmn.helper.MessageThrowingEventListener in project Activiti by Activiti.

the class DefaultListenerFactory method createEventThrowingEventListener.

@Override
public ActivitiEventListener createEventThrowingEventListener(EventListener eventListener) {
    BaseDelegateEventListener result = null;
    if (ImplementationType.IMPLEMENTATION_TYPE_THROW_SIGNAL_EVENT.equals(eventListener.getImplementationType())) {
        result = new SignalThrowingEventListener();
        ((SignalThrowingEventListener) result).setSignalName(eventListener.getImplementation());
        ((SignalThrowingEventListener) result).setProcessInstanceScope(true);
    } else if (ImplementationType.IMPLEMENTATION_TYPE_THROW_GLOBAL_SIGNAL_EVENT.equals(eventListener.getImplementationType())) {
        result = new SignalThrowingEventListener();
        ((SignalThrowingEventListener) result).setSignalName(eventListener.getImplementation());
        ((SignalThrowingEventListener) result).setProcessInstanceScope(false);
    } else if (ImplementationType.IMPLEMENTATION_TYPE_THROW_MESSAGE_EVENT.equals(eventListener.getImplementationType())) {
        result = new MessageThrowingEventListener();
        ((MessageThrowingEventListener) result).setMessageName(eventListener.getImplementation());
    } else if (ImplementationType.IMPLEMENTATION_TYPE_THROW_ERROR_EVENT.equals(eventListener.getImplementationType())) {
        result = new ErrorThrowingEventListener();
        ((ErrorThrowingEventListener) result).setErrorCode(eventListener.getImplementation());
    }
    if (result == null) {
        throw new ActivitiIllegalArgumentException("Cannot create an event-throwing event-listener, unknown implementation type: " + eventListener.getImplementationType());
    }
    result.setEntityClass(getEntityType(eventListener.getEntityType()));
    return result;
}
Also used : ErrorThrowingEventListener(org.activiti.engine.impl.bpmn.helper.ErrorThrowingEventListener) MessageThrowingEventListener(org.activiti.engine.impl.bpmn.helper.MessageThrowingEventListener) SignalThrowingEventListener(org.activiti.engine.impl.bpmn.helper.SignalThrowingEventListener) ActivitiIllegalArgumentException(org.activiti.engine.ActivitiIllegalArgumentException) BaseDelegateEventListener(org.activiti.engine.impl.bpmn.helper.BaseDelegateEventListener)

Example 3 with MessageThrowingEventListener

use of org.activiti.engine.impl.bpmn.helper.MessageThrowingEventListener in project Activiti by Activiti.

the class MessageThrowingEventListenerTest method testThrowMessage.

@Deployment
public void testThrowMessage() throws Exception {
    MessageThrowingEventListener listener = null;
    try {
        listener = new MessageThrowingEventListener();
        listener.setMessageName("Message");
        processEngineConfiguration.getEventDispatcher().addEventListener(listener, ActivitiEventType.TASK_ASSIGNED);
        ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("testMessage");
        assertNotNull(processInstance);
        // Fetch the task and re-assig it to trigger the event-listener
        Task task = taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult();
        assertNotNull(task);
        taskService.setAssignee(task.getId(), "kermit");
        // Boundary-event should have been messaged and a new task should be available, on top of the already
        // existing one, since the cancelActivity='false'
        task = taskService.createTaskQuery().processInstanceId(processInstance.getId()).taskDefinitionKey("subTask").singleResult();
        assertNotNull(task);
        assertEquals("kermit", task.getAssignee());
        Task boundaryTask = taskService.createTaskQuery().processInstanceId(processInstance.getId()).taskDefinitionKey("boundaryTask").singleResult();
        assertNotNull(boundaryTask);
    } finally {
        processEngineConfiguration.getEventDispatcher().removeEventListener(listener);
    }
}
Also used : Task(org.activiti.engine.task.Task) MessageThrowingEventListener(org.activiti.engine.impl.bpmn.helper.MessageThrowingEventListener) ProcessInstance(org.activiti.engine.runtime.ProcessInstance) Deployment(org.activiti.engine.test.Deployment)

Aggregations

MessageThrowingEventListener (org.activiti.engine.impl.bpmn.helper.MessageThrowingEventListener)3 ProcessInstance (org.activiti.engine.runtime.ProcessInstance)2 Task (org.activiti.engine.task.Task)2 Deployment (org.activiti.engine.test.Deployment)2 ActivitiIllegalArgumentException (org.activiti.engine.ActivitiIllegalArgumentException)1 BaseDelegateEventListener (org.activiti.engine.impl.bpmn.helper.BaseDelegateEventListener)1 ErrorThrowingEventListener (org.activiti.engine.impl.bpmn.helper.ErrorThrowingEventListener)1 SignalThrowingEventListener (org.activiti.engine.impl.bpmn.helper.SignalThrowingEventListener)1