@SuppressWarnings("unchecked") @Override public void registerTaskEventListener(TaskLifeCycleEventListener taskLifecycleEventListener) { synchronized (ksession) { ((EventService<TaskLifeCycleEventListener>)taskService).registerTaskEventListener(taskLifecycleEventListener); } }
@SuppressWarnings("unchecked") @Override public void removeTaskEventListener(TaskLifeCycleEventListener listener) { synchronized (ksession) { ((EventService<TaskLifeCycleEventListener>) taskService).removeTaskEventListener(listener); } }
@SuppressWarnings({ "rawtypes" }) public void close() { if (taskService instanceof EventService) { ((EventService)taskService).clearTaskEventListeners(); } }
@SuppressWarnings("unchecked") @Test public void testTaskCreateFailedWithLog() throws Exception { TestWorkItemManager manager = new TestWorkItemManager(); ((AbstractHTWorkItemHandler)handler).setAction(OnErrorAction.LOG); TaskLifeCycleEventListener listener = new AddedTaskListener(true); ((EventService<TaskLifeCycleEventListener>) taskService).registerTaskEventListener(listener); ksession.setWorkItemManager(manager); WorkItemImpl workItem = new WorkItemImpl(); workItem.setName("Human Task"); workItem.setParameter("NodeName", "TaskName"); workItem.setParameter("Comment", "Comment"); workItem.setParameter("Priority", "10"); workItem.setParameter("ActorId", "DoesNotExist"); workItem.setProcessInstanceId(10); handler.executeWorkItem(workItem, manager); assertFalse(manager.isAborted()); ((EventService<TaskLifeCycleEventListener>) taskService).removeTaskEventListener(listener); } @SuppressWarnings("unchecked")
@SuppressWarnings("unchecked") @Override public List<TaskLifeCycleEventListener> getTaskEventListeners() { synchronized (ksession) { return ((EventService<TaskLifeCycleEventListener>) taskService).getTaskEventListeners(); } }
@SuppressWarnings("unchecked") @Test public void testTaskCreateFailedWithRethrow() throws Exception { TestWorkItemManager manager = new TestWorkItemManager(); TaskLifeCycleEventListener listener = new AddedTaskListener(true); ((EventService<TaskLifeCycleEventListener>) taskService).registerTaskEventListener(listener); ((AbstractHTWorkItemHandler)handler).setAction(OnErrorAction.RETHROW); ksession.setWorkItemManager(manager); WorkItemImpl workItem = new WorkItemImpl(); workItem.setName("Human Task"); workItem.setParameter("NodeName", "TaskName"); workItem.setParameter("Comment", "Comment"); workItem.setParameter("Priority", "10"); workItem.setParameter("ActorId", "DoesNotExist"); workItem.setProcessInstanceId(10); try { handler.executeWorkItem(workItem, manager); fail("Should fail due to OnErroAction set to rethrow"); } catch (Exception e) { // do nothing } ((EventService<TaskLifeCycleEventListener>) taskService).removeTaskEventListener(listener); }
@SuppressWarnings("unchecked") @Override public List<TaskLifeCycleEventListener> getTaskEventListeners() { synchronized (ksession) { return ((EventService<TaskLifeCycleEventListener>) taskService).getTaskEventListeners(); } }
@SuppressWarnings("unchecked") @Test public void testTaskCreateFailedWithAbort() throws Exception { TestWorkItemManager manager = new TestWorkItemManager(); TaskLifeCycleEventListener listener = new AddedTaskListener(true); ((EventService<TaskLifeCycleEventListener>) taskService).registerTaskEventListener(listener); ((AbstractHTWorkItemHandler)handler).setAction(OnErrorAction.ABORT); ksession.setWorkItemManager(manager); WorkItemImpl workItem = new WorkItemImpl(); workItem.setName("Human Task"); workItem.setParameter("NodeName", "TaskName"); workItem.setParameter("Comment", "Comment"); workItem.setParameter("Priority", "10"); workItem.setParameter("ActorId", "DoesNotExist"); workItem.setProcessInstanceId(10); handler.executeWorkItem(workItem, manager); assertTrue(manager.isAborted()); ((EventService<TaskLifeCycleEventListener>) taskService).removeTaskEventListener(listener); } @SuppressWarnings("unchecked")
protected void addCountDownListner(CountDownTaskEventListener countDownListener) { if (taskService instanceof EventService) { ((EventService<TaskLifeCycleEventListener>) taskService).registerTaskEventListener(countDownListener); } }
protected void removeCountDownListner(CountDownTaskEventListener countDownListener) { if (taskService instanceof EventService) { ((EventService<TaskLifeCycleEventListener>) taskService).removeTaskEventListener(countDownListener); } } }
@SuppressWarnings("unchecked") @Override public void clearTaskEventListeners() { synchronized (ksession) { ((EventService<TaskLifeCycleEventListener>) taskService).clearTaskEventListeners(); } }
assertNotNull(taskService); List<?> listeners = ((EventService<?>) taskService).getTaskEventListeners(); assertNotNull(listeners); assertEquals(3, listeners.size());
@SuppressWarnings("unchecked") @Test public void testTaskCreateFailedWithRethrow() throws Exception { TestWorkItemManager manager = new TestWorkItemManager(); TaskLifeCycleEventListener listener = new AddedTaskListener(true); ((EventService<TaskLifeCycleEventListener>) taskService).registerTaskEventListener(listener); ((AbstractHTWorkItemHandler)handler).setAction(OnErrorAction.RETHROW); ksession.setWorkItemManager(manager); WorkItemImpl workItem = new WorkItemImpl(); workItem.setName("Human Task"); workItem.setParameter("NodeName", "TaskName"); workItem.setParameter("Comment", "Comment"); workItem.setParameter("Priority", "10"); workItem.setParameter("ActorId", "DoesNotExist"); workItem.setProcessInstanceId(10); try { handler.executeWorkItem(workItem, manager); fail("Should fail due to OnErroAction set to rethrow"); } catch (Exception e) { // do nothing } ((EventService<TaskLifeCycleEventListener>) taskService).removeTaskEventListener(listener); }
@SuppressWarnings({ "unchecked", "rawtypes" }) public void init() { if(!initialized) { listener = new NonManagedTaskEventListener(this.ksession, this.taskService); if (taskService instanceof EventService) { ((EventService)taskService).registerTaskEventListener(listener); } initialized = true; } }
@SuppressWarnings("unchecked") @Override public void removeTaskEventListener(TaskLifeCycleEventListener listener) { synchronized (ksession) { ((EventService<TaskLifeCycleEventListener>) taskService).removeTaskEventListener(listener); } }
@Override public void onDispose(RuntimeEngine runtime) { if (runtime.getTaskService() instanceof EventService) { ((EventService)runtime.getTaskService()).clearTaskEventListeners();; } } });
@SuppressWarnings("unchecked") @Test public void testTaskCreateFailedWithLog() throws Exception { TestWorkItemManager manager = new TestWorkItemManager(); ((AbstractHTWorkItemHandler)handler).setAction(OnErrorAction.LOG); TaskLifeCycleEventListener listener = new AddedTaskListener(true); ((EventService<TaskLifeCycleEventListener>) taskService).registerTaskEventListener(listener); ksession.setWorkItemManager(manager); WorkItemImpl workItem = new WorkItemImpl(); workItem.setName("Human Task"); workItem.setParameter("NodeName", "TaskName"); workItem.setParameter("Comment", "Comment"); workItem.setParameter("Priority", "10"); workItem.setParameter("ActorId", "DoesNotExist"); workItem.setProcessInstanceId(10); handler.executeWorkItem(workItem, manager); assertFalse(manager.isAborted()); ((EventService<TaskLifeCycleEventListener>) taskService).removeTaskEventListener(listener); } @SuppressWarnings("unchecked")
@SuppressWarnings({ "unchecked", "rawtypes" }) protected void configureRuntimeOnTaskService(InternalTaskService internalTaskService, RuntimeEngine engine) { if (internalTaskService != null) { ExternalTaskEventListener listener = new ExternalTaskEventListener(); if (internalTaskService instanceof EventService) { ((EventService)internalTaskService).registerTaskEventListener(listener); } // register task listeners if any RegisterableItemsFactory factory = environment.getRegisterableItemsFactory(); for (TaskLifeCycleEventListener taskListener : factory.getTaskListeners()) { ((EventService<TaskLifeCycleEventListener>)internalTaskService).registerTaskEventListener(taskListener); } if (engine != null && engine instanceof Disposable) { ((Disposable)engine).addDisposeListener(new DisposeListener() { @Override public void onDispose(RuntimeEngine runtime) { if (runtime.getTaskService() instanceof EventService) { ((EventService)runtime.getTaskService()).clearTaskEventListeners();; } } }); } } }
@SuppressWarnings("unchecked") @Override public void clearTaskEventListeners() { synchronized (ksession) { ((EventService<TaskLifeCycleEventListener>) taskService).clearTaskEventListeners(); } }
@SuppressWarnings("unchecked") @Test public void testTaskCreateFailedWithAbort() throws Exception { TestWorkItemManager manager = new TestWorkItemManager(); TaskLifeCycleEventListener listener = new AddedTaskListener(true); ((EventService<TaskLifeCycleEventListener>) taskService).registerTaskEventListener(listener); ((AbstractHTWorkItemHandler)handler).setAction(OnErrorAction.ABORT); ksession.setWorkItemManager(manager); WorkItemImpl workItem = new WorkItemImpl(); workItem.setName("Human Task"); workItem.setParameter("NodeName", "TaskName"); workItem.setParameter("Comment", "Comment"); workItem.setParameter("Priority", "10"); workItem.setParameter("ActorId", "DoesNotExist"); workItem.setProcessInstanceId(10); handler.executeWorkItem(workItem, manager); assertTrue(manager.isAborted()); ((EventService<TaskLifeCycleEventListener>) taskService).removeTaskEventListener(listener); } @SuppressWarnings("unchecked")