From c2b1d03afd4df881cfe0b0032b9db9c40c67c4fc Mon Sep 17 00:00:00 2001 From: Abhijit Humbe Date: Thu, 4 Aug 2022 12:42:57 +0530 Subject: [PATCH] [JBPM-10081] Task Description field is set with the same value of Task Subject. --- .../task/wih/AbstractHTWorkItemHandler.java | 9 ++- .../task/wih/HTWorkItemHandlerBaseTest.java | 76 +++++++++++++++++++ 2 files changed, 84 insertions(+), 1 deletion(-) diff --git a/jbpm-human-task/jbpm-human-task-workitems/src/main/java/org/jbpm/services/task/wih/AbstractHTWorkItemHandler.java b/jbpm-human-task/jbpm-human-task-workitems/src/main/java/org/jbpm/services/task/wih/AbstractHTWorkItemHandler.java index 2c685993d8..19bd3adf39 100644 --- a/jbpm-human-task/jbpm-human-task-workitems/src/main/java/org/jbpm/services/task/wih/AbstractHTWorkItemHandler.java +++ b/jbpm-human-task/jbpm-human-task-workitems/src/main/java/org/jbpm/services/task/wih/AbstractHTWorkItemHandler.java @@ -60,6 +60,8 @@ public abstract class AbstractHTWorkItemHandler implements WorkItemHandler { protected static final String ADMIN_USER = System.getProperty("org.jbpm.ht.admin.user", "Administrator"); + protected static final Boolean COPY_TASK_SUBJECT_TO_Task_DESCRIPTION = Boolean.parseBoolean(System.getProperty("org.jbpm.ht.copy.task_subject.to.task_description", "true")); + protected OnErrorAction action = OnErrorAction.LOG; public AbstractHTWorkItemHandler() { @@ -107,7 +109,12 @@ protected Task createTaskBasedOnWorkItemParams(KieSession session, WorkItem work String description = (String) workItem.getParameter("Description"); if (description == null) { - description = comment; + if (COPY_TASK_SUBJECT_TO_Task_DESCRIPTION) { + description = comment; + } else { + description = ""; + } + } List descriptions = new ArrayList(); diff --git a/jbpm-human-task/jbpm-human-task-workitems/src/test/java/org/jbpm/services/task/wih/HTWorkItemHandlerBaseTest.java b/jbpm-human-task/jbpm-human-task-workitems/src/test/java/org/jbpm/services/task/wih/HTWorkItemHandlerBaseTest.java index 4627b5d665..f894ae443f 100644 --- a/jbpm-human-task/jbpm-human-task-workitems/src/test/java/org/jbpm/services/task/wih/HTWorkItemHandlerBaseTest.java +++ b/jbpm-human-task/jbpm-human-task-workitems/src/test/java/org/jbpm/services/task/wih/HTWorkItemHandlerBaseTest.java @@ -129,6 +129,82 @@ public void testTaskMultipleActors() throws Exception { assertTrue(manager.waitTillCompleted(MANAGER_COMPLETION_WAIT_TIME)); } + @Test + public void testTaskDescriptinCopyingFromTaskSubject() throws Exception { + + System.setProperty("org.jbpm.ht.copy.task_subject.to.task_description", "true"); + + TestWorkItemManager manager = new TestWorkItemManager(); + 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", "Darth Vader, Dalai Lama"); + workItem.setProcessInstanceId(10); + getHandler().executeWorkItem(workItem, manager); + + + List tasks = taskService.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK"); + assertEquals(1, tasks.size()); + TaskSummary task = tasks.get(0); + assertEquals("TaskName", task.getName()); + assertEquals(10, task.getPriority().intValue()); + assertEquals("Comment", task.getSubject()); + assertEquals("Comment", task.getDescription()); + assertEquals(Status.Ready, task.getStatus()); + + taskService.claim(task.getId(), "Darth Vader"); + + taskService.start(task.getId(), "Darth Vader"); + + taskService.complete(task.getId(), "Darth Vader", null); + + assertTrue(manager.waitTillCompleted(MANAGER_COMPLETION_WAIT_TIME)); + + System.clearProperty("org.jbpm.ht.copy.task_subject.to.task_description"); + } + + @Test + public void testTaskDescriptinWithoutCopyingFromTaskSubject() throws Exception { + + System.setProperty("org.jbpm.ht.copy.task_subject.to.task_description", "false"); + + TestWorkItemManager manager = new TestWorkItemManager(); + ksession.setWorkItemManager(manager); + WorkItemImpl workItem = new WorkItemImpl(); + workItem.setName("Human Task"); + workItem.setParameter("NodeName", "TaskName"); + workItem.setParameter("Comment", "Comment"); + workItem.setParameter("Description", "Description"); + workItem.setParameter("Priority", "10"); + workItem.setParameter("ActorId", "Darth Vader, Dalai Lama"); + workItem.setProcessInstanceId(10); + getHandler().executeWorkItem(workItem, manager); + + + List tasks = taskService.getTasksAssignedAsPotentialOwner("Darth Vader", "en-UK"); + assertEquals(1, tasks.size()); + TaskSummary task = tasks.get(0); + assertEquals("TaskName", task.getName()); + assertEquals(10, task.getPriority().intValue()); + assertEquals("Comment", task.getSubject()); + assertEquals("Description", task.getDescription()); + assertEquals(Status.Ready, task.getStatus()); + + taskService.claim(task.getId(), "Darth Vader"); + + taskService.start(task.getId(), "Darth Vader"); + + taskService.complete(task.getId(), "Darth Vader", null); + + assertTrue(manager.waitTillCompleted(MANAGER_COMPLETION_WAIT_TIME)); + + System.clearProperty("org.jbpm.ht.copy.task_subject.to.task_description"); + + } + @Test public void testTaskGroupActors() throws Exception {