use of org.camunda.bpm.engine.impl.task.listener.ClassDelegateTaskListener in project camunda-bpm-platform by camunda.
the class HumanTaskItemHandler method initializeTaskListener.
protected TaskListener initializeTaskListener(CmmnElement element, CmmnActivity activity, CmmnHandlerContext context, CamundaTaskListener listener) {
Collection<CamundaField> fields = listener.getCamundaFields();
List<FieldDeclaration> fieldDeclarations = initializeFieldDeclarations(element, activity, context, fields);
ExpressionManager expressionManager = context.getExpressionManager();
TaskListener taskListener = null;
String className = listener.getCamundaClass();
String expression = listener.getCamundaExpression();
String delegateExpression = listener.getCamundaDelegateExpression();
CamundaScript scriptElement = listener.getCamundaScript();
if (className != null) {
taskListener = new ClassDelegateTaskListener(className, fieldDeclarations);
} else if (expression != null) {
Expression expressionExp = expressionManager.createExpression(expression);
taskListener = new ExpressionTaskListener(expressionExp);
} else if (delegateExpression != null) {
Expression delegateExp = expressionManager.createExpression(delegateExpression);
taskListener = new DelegateExpressionTaskListener(delegateExp, fieldDeclarations);
} else if (scriptElement != null) {
ExecutableScript executableScript = initializeScript(element, activity, context, scriptElement);
if (executableScript != null) {
taskListener = new ScriptTaskListener(executableScript);
}
}
return taskListener;
}
use of org.camunda.bpm.engine.impl.task.listener.ClassDelegateTaskListener in project camunda-bpm-platform by camunda.
the class HumanTaskPlanItemHandlerTest method testAssignmentTaskListenerByClass.
@Test
public void testAssignmentTaskListenerByClass() {
// given:
ExtensionElements extensionElements = addExtensionElements(humanTask);
CamundaTaskListener taskListener = createElement(extensionElements, null, CamundaTaskListener.class);
String className = "org.camunda.bpm.test.tasklistener.ABC";
String event = TaskListener.EVENTNAME_ASSIGNMENT;
taskListener.setCamundaEvent(event);
taskListener.setCamundaClass(className);
// when
CmmnActivity activity = handler.handleElement(planItem, context);
// then
assertEquals(0, activity.getListeners().size());
HumanTaskActivityBehavior behavior = (HumanTaskActivityBehavior) activity.getActivityBehavior();
TaskDefinition taskDefinition = behavior.getTaskDefinition();
assertNotNull(taskDefinition);
assertEquals(1, taskDefinition.getTaskListeners().size());
List<TaskListener> createListeners = taskDefinition.getTaskListeners(event);
assertEquals(1, createListeners.size());
TaskListener listener = createListeners.get(0);
assertTrue(listener instanceof ClassDelegateTaskListener);
ClassDelegateTaskListener classDelegateListener = (ClassDelegateTaskListener) listener;
assertEquals(className, classDelegateListener.getClassName());
assertTrue(classDelegateListener.getFieldDeclarations().isEmpty());
}
use of org.camunda.bpm.engine.impl.task.listener.ClassDelegateTaskListener in project camunda-bpm-platform by camunda.
the class HumanTaskPlanItemHandlerTest method testDeleteTaskListenerByClass.
@Test
public void testDeleteTaskListenerByClass() {
// given:
ExtensionElements extensionElements = addExtensionElements(humanTask);
CamundaTaskListener taskListener = createElement(extensionElements, null, CamundaTaskListener.class);
String className = "org.camunda.bpm.test.tasklistener.ABC";
String event = TaskListener.EVENTNAME_DELETE;
taskListener.setCamundaEvent(event);
taskListener.setCamundaClass(className);
// when
CmmnActivity activity = handler.handleElement(planItem, context);
// then
assertEquals(0, activity.getListeners().size());
HumanTaskActivityBehavior behavior = (HumanTaskActivityBehavior) activity.getActivityBehavior();
TaskDefinition taskDefinition = behavior.getTaskDefinition();
assertNotNull(taskDefinition);
assertEquals(1, taskDefinition.getTaskListeners().size());
List<TaskListener> createListeners = taskDefinition.getTaskListeners(event);
assertEquals(1, createListeners.size());
TaskListener listener = createListeners.get(0);
assertTrue(listener instanceof ClassDelegateTaskListener);
ClassDelegateTaskListener classDelegateListener = (ClassDelegateTaskListener) listener;
assertEquals(className, classDelegateListener.getClassName());
assertTrue(classDelegateListener.getFieldDeclarations().isEmpty());
}
use of org.camunda.bpm.engine.impl.task.listener.ClassDelegateTaskListener in project camunda-bpm-platform by camunda.
the class HumanTaskPlanItemHandlerTest method testCreateTaskListenerByClass.
@Test
public void testCreateTaskListenerByClass() {
// given:
ExtensionElements extensionElements = addExtensionElements(humanTask);
CamundaTaskListener taskListener = createElement(extensionElements, null, CamundaTaskListener.class);
String className = "org.camunda.bpm.test.tasklistener.ABC";
String event = TaskListener.EVENTNAME_CREATE;
taskListener.setCamundaEvent(event);
taskListener.setCamundaClass(className);
// when
CmmnActivity activity = handler.handleElement(planItem, context);
// then
assertEquals(0, activity.getListeners().size());
HumanTaskActivityBehavior behavior = (HumanTaskActivityBehavior) activity.getActivityBehavior();
TaskDefinition taskDefinition = behavior.getTaskDefinition();
assertNotNull(taskDefinition);
assertEquals(1, taskDefinition.getTaskListeners().size());
List<TaskListener> createListeners = taskDefinition.getTaskListeners(event);
assertEquals(1, createListeners.size());
TaskListener listener = createListeners.get(0);
assertTrue(listener instanceof ClassDelegateTaskListener);
ClassDelegateTaskListener classDelegateListener = (ClassDelegateTaskListener) listener;
assertEquals(className, classDelegateListener.getClassName());
assertTrue(classDelegateListener.getFieldDeclarations().isEmpty());
}
use of org.camunda.bpm.engine.impl.task.listener.ClassDelegateTaskListener in project camunda-bpm-platform by camunda.
the class HumanTaskPlanItemHandlerTest method testCompleteTaskListenerByClass.
@Test
public void testCompleteTaskListenerByClass() {
// given:
ExtensionElements extensionElements = addExtensionElements(humanTask);
CamundaTaskListener taskListener = createElement(extensionElements, null, CamundaTaskListener.class);
String className = "org.camunda.bpm.test.tasklistener.ABC";
String event = TaskListener.EVENTNAME_COMPLETE;
taskListener.setCamundaEvent(event);
taskListener.setCamundaClass(className);
// when
CmmnActivity activity = handler.handleElement(planItem, context);
// then
assertEquals(0, activity.getListeners().size());
HumanTaskActivityBehavior behavior = (HumanTaskActivityBehavior) activity.getActivityBehavior();
TaskDefinition taskDefinition = behavior.getTaskDefinition();
assertNotNull(taskDefinition);
assertEquals(1, taskDefinition.getTaskListeners().size());
List<TaskListener> createListeners = taskDefinition.getTaskListeners(event);
assertEquals(1, createListeners.size());
TaskListener listener = createListeners.get(0);
assertTrue(listener instanceof ClassDelegateTaskListener);
ClassDelegateTaskListener classDelegateListener = (ClassDelegateTaskListener) listener;
assertEquals(className, classDelegateListener.getClassName());
assertTrue(classDelegateListener.getFieldDeclarations().isEmpty());
}
Aggregations