diff --git a/config/alfresco/activiti-context.xml b/config/alfresco/activiti-context.xml
index c0f5295fed..5d76e23b9a 100644
--- a/config/alfresco/activiti-context.xml
+++ b/config/alfresco/activiti-context.xml
@@ -66,6 +66,7 @@
+
@@ -225,6 +226,11 @@
class="org.alfresco.repo.workflow.activiti.tasklistener.TaskCreateListener"
depends-on="activitiWorkflowManager">
+
+
+
diff --git a/source/java/org/alfresco/repo/workflow/activiti/AlfrescoUserTaskBpmnParseHandler.java b/source/java/org/alfresco/repo/workflow/activiti/AlfrescoUserTaskBpmnParseHandler.java
index f96dfdf8a2..5b4e62c616 100644
--- a/source/java/org/alfresco/repo/workflow/activiti/AlfrescoUserTaskBpmnParseHandler.java
+++ b/source/java/org/alfresco/repo/workflow/activiti/AlfrescoUserTaskBpmnParseHandler.java
@@ -38,6 +38,7 @@ public class AlfrescoUserTaskBpmnParseHandler extends AbstractBpmnParseHandler getHandledType()
{
@@ -72,6 +73,10 @@ public class AlfrescoUserTaskBpmnParseHandler extends AbstractBpmnParseHandler getOrCreateListenerList(String eventName, UserTaskActivityBehavior userTask)
{
List taskEventListeners = userTask.getTaskDefinition().getTaskListeners().get(eventName);
if (taskEventListeners == null) {
taskEventListeners = new ArrayList();
userTask.getTaskDefinition().getTaskListeners().put(eventName, taskEventListeners);
}
- taskEventListeners.add(0, taskListener);
+ return taskEventListeners;
}
}
\ No newline at end of file
diff --git a/source/java/org/alfresco/repo/workflow/activiti/tasklistener/TaskCreateListener.java b/source/java/org/alfresco/repo/workflow/activiti/tasklistener/TaskCreateListener.java
index cb198563be..280662f36f 100644
--- a/source/java/org/alfresco/repo/workflow/activiti/tasklistener/TaskCreateListener.java
+++ b/source/java/org/alfresco/repo/workflow/activiti/tasklistener/TaskCreateListener.java
@@ -19,25 +19,18 @@
package org.alfresco.repo.workflow.activiti.tasklistener;
-import java.util.ArrayList;
-import java.util.List;
-
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import org.activiti.engine.form.FormData;
import org.activiti.engine.impl.form.TaskFormHandler;
-import org.activiti.engine.impl.persistence.entity.ExecutionEntity;
-import org.activiti.engine.impl.persistence.entity.IdentityLinkEntity;
import org.activiti.engine.impl.persistence.entity.TaskEntity;
import org.activiti.engine.task.IdentityLinkType;
import org.alfresco.model.ContentModel;
import org.alfresco.repo.workflow.WorkflowConstants;
-import org.alfresco.repo.workflow.WorkflowNotificationUtils;
import org.alfresco.repo.workflow.activiti.ActivitiConstants;
import org.alfresco.repo.workflow.activiti.ActivitiScriptNode;
import org.alfresco.repo.workflow.activiti.properties.ActivitiPropertyConverter;
import org.alfresco.service.cmr.dictionary.TypeDefinition;
-import org.alfresco.service.cmr.repository.NodeRef;
/**
* Tasklistener that is notified when a task is created. This will set all
@@ -51,15 +44,6 @@ public class TaskCreateListener implements TaskListener
private static final long serialVersionUID = 1L;
private ActivitiPropertyConverter propertyConverter;
- private WorkflowNotificationUtils workflowNotificationUtils;
-
- /**
- * @param services the service registry
- */
- public void setWorkflowNotification(WorkflowNotificationUtils service)
- {
- this.workflowNotificationUtils = service;
- }
@Override
public void notify(DelegateTask task)
@@ -82,73 +66,6 @@ public class TaskCreateListener implements TaskListener
if(initiatorNode != null) {
task.addUserIdentityLink((String) initiatorNode.getProperties().get(ContentModel.PROP_USERNAME.toPrefixString()), IdentityLinkType.STARTER);
}
-
- // Determine whether we need to send the workflow notification or not
- ExecutionEntity executionEntity = ((ExecutionEntity)task.getExecution()).getProcessInstance();
- Boolean value = (Boolean)executionEntity.getVariable(WorkflowNotificationUtils.PROP_SEND_EMAIL_NOTIFICATIONS);
- if (Boolean.TRUE.equals(value) == true)
- {
- // Get the workflow package node
- NodeRef workflowPackage = null;
- ActivitiScriptNode scriptNode = (ActivitiScriptNode)executionEntity.getVariable(WorkflowNotificationUtils.PROP_PACKAGE);
- if (scriptNode != null)
- {
- workflowPackage = scriptNode.getNodeRef();
- }
-
- // Determine whether the task is pooled or not
- String[] authorities = null;
- boolean isPooled = false;
- if (task.getAssignee() == null)
- {
- // Task is pooled
- isPooled = true;
-
- // Get the pool of user/groups for this task
- List identities = ((TaskEntity)task).getIdentityLinks();
- List temp = new ArrayList(identities.size());
- for (IdentityLinkEntity item : identities)
- {
- String group = item.getGroupId();
- if (group != null)
- {
- temp.add(group);
- }
- String user = item.getUserId();
- if (user != null)
- {
- temp.add(user);
- }
- }
- authorities = temp.toArray(new String[temp.size()]);
- }
- else
- {
- // Get the assigned user or group
- authorities = new String[]{task.getAssignee()};
- }
-
- String title;
- if (task.getName() != null)
- {
- title = task.getName();
- }
- else
- {
- title = taskFormKey.replace(":", "_");
- }
-
- // Send email notification
- workflowNotificationUtils.sendWorkflowAssignedNotificationEMail(
- ActivitiConstants.ENGINE_ID + "$" + task.getId(),
- title,
- task.getDescription(),
- task.getDueDate(),
- Integer.valueOf(task.getPriority()),
- workflowPackage,
- authorities,
- isPooled);
- }
}
private String getFormKey(DelegateTask task)