mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-24 17:32:48 +00:00
Added getTaskDefinitions to WorkflowService - required for delete model validation
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@6693 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -35,6 +35,7 @@ import org.alfresco.service.cmr.workflow.WorkflowDeployment;
|
|||||||
import org.alfresco.service.cmr.workflow.WorkflowInstance;
|
import org.alfresco.service.cmr.workflow.WorkflowInstance;
|
||||||
import org.alfresco.service.cmr.workflow.WorkflowPath;
|
import org.alfresco.service.cmr.workflow.WorkflowPath;
|
||||||
import org.alfresco.service.cmr.workflow.WorkflowTask;
|
import org.alfresco.service.cmr.workflow.WorkflowTask;
|
||||||
|
import org.alfresco.service.cmr.workflow.WorkflowTaskDefinition;
|
||||||
import org.alfresco.service.cmr.workflow.WorkflowTimer;
|
import org.alfresco.service.cmr.workflow.WorkflowTimer;
|
||||||
import org.alfresco.service.namespace.QName;
|
import org.alfresco.service.namespace.QName;
|
||||||
|
|
||||||
@@ -131,6 +132,15 @@ public interface WorkflowComponent
|
|||||||
@Auditable(parameters = {"workflowDefinitionId"})
|
@Auditable(parameters = {"workflowDefinitionId"})
|
||||||
public byte[] getDefinitionImage(String workflowDefinitionId);
|
public byte[] getDefinitionImage(String workflowDefinitionId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the Task Definitions for the given Workflow Definition
|
||||||
|
*
|
||||||
|
* @param workflowDefinitionId the workflow definition id
|
||||||
|
* @return the deployed task definitions (or null if not found)
|
||||||
|
*/
|
||||||
|
@Auditable(parameters = {"workflowDefinitionId"})
|
||||||
|
public List<WorkflowTaskDefinition> getTaskDefinitions(final String workflowDefinitionId);
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Workflow Instance Support
|
// Workflow Instance Support
|
||||||
|
@@ -42,6 +42,7 @@ import org.alfresco.service.cmr.workflow.WorkflowInstance;
|
|||||||
import org.alfresco.service.cmr.workflow.WorkflowPath;
|
import org.alfresco.service.cmr.workflow.WorkflowPath;
|
||||||
import org.alfresco.service.cmr.workflow.WorkflowService;
|
import org.alfresco.service.cmr.workflow.WorkflowService;
|
||||||
import org.alfresco.service.cmr.workflow.WorkflowTask;
|
import org.alfresco.service.cmr.workflow.WorkflowTask;
|
||||||
|
import org.alfresco.service.cmr.workflow.WorkflowTaskDefinition;
|
||||||
import org.alfresco.service.cmr.workflow.WorkflowTaskQuery;
|
import org.alfresco.service.cmr.workflow.WorkflowTaskQuery;
|
||||||
import org.alfresco.service.cmr.workflow.WorkflowTaskState;
|
import org.alfresco.service.cmr.workflow.WorkflowTaskState;
|
||||||
import org.alfresco.service.cmr.workflow.WorkflowTimer;
|
import org.alfresco.service.cmr.workflow.WorkflowTimer;
|
||||||
@@ -220,6 +221,16 @@ public class WorkflowServiceImpl implements WorkflowService
|
|||||||
return definitionImage;
|
return definitionImage;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.alfresco.service.cmr.workflow.WorkflowService#getAllTaskDefinitions(java.lang.String)
|
||||||
|
*/
|
||||||
|
public List<WorkflowTaskDefinition> getTaskDefinitions(final String workflowDefinitionId)
|
||||||
|
{
|
||||||
|
String engineId = BPMEngineRegistry.getEngineId(workflowDefinitionId);
|
||||||
|
WorkflowComponent component = getWorkflowComponent(engineId);
|
||||||
|
return component.getTaskDefinitions(workflowDefinitionId);
|
||||||
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see org.alfresco.service.cmr.workflow.WorkflowService#startWorkflow(java.lang.String, java.util.Map)
|
* @see org.alfresco.service.cmr.workflow.WorkflowService#startWorkflow(java.lang.String, java.util.Map)
|
||||||
*/
|
*/
|
||||||
|
@@ -41,6 +41,7 @@ import org.alfresco.service.cmr.workflow.WorkflowInstance;
|
|||||||
import org.alfresco.service.cmr.workflow.WorkflowPath;
|
import org.alfresco.service.cmr.workflow.WorkflowPath;
|
||||||
import org.alfresco.service.cmr.workflow.WorkflowService;
|
import org.alfresco.service.cmr.workflow.WorkflowService;
|
||||||
import org.alfresco.service.cmr.workflow.WorkflowTask;
|
import org.alfresco.service.cmr.workflow.WorkflowTask;
|
||||||
|
import org.alfresco.service.cmr.workflow.WorkflowTaskDefinition;
|
||||||
import org.alfresco.service.cmr.workflow.WorkflowTaskQuery;
|
import org.alfresco.service.cmr.workflow.WorkflowTaskQuery;
|
||||||
import org.alfresco.service.cmr.workflow.WorkflowTaskState;
|
import org.alfresco.service.cmr.workflow.WorkflowTaskState;
|
||||||
import org.alfresco.service.namespace.NamespaceService;
|
import org.alfresco.service.namespace.NamespaceService;
|
||||||
@@ -160,4 +161,17 @@ public class WorkflowServiceImplTest extends BaseSpringTest
|
|||||||
assertEquals(0, completedInstances.size());
|
assertEquals(0, completedInstances.size());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testGetWorkflowTaskDefinitions()
|
||||||
|
{
|
||||||
|
List<WorkflowDefinition> workflowDefs = workflowService.getDefinitions();
|
||||||
|
assertNotNull(workflowDefs);
|
||||||
|
assertTrue(workflowDefs.size() > 0);
|
||||||
|
|
||||||
|
for (WorkflowDefinition workflowDef : workflowDefs)
|
||||||
|
{
|
||||||
|
List<WorkflowTaskDefinition> workflowTaskDefs = workflowService.getTaskDefinitions(workflowDef.getId());
|
||||||
|
assertNotNull(workflowTaskDefs);
|
||||||
|
assertTrue(workflowTaskDefs.size() > 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -106,6 +106,7 @@ import org.jbpm.job.Timer;
|
|||||||
import org.jbpm.jpdl.par.ProcessArchive;
|
import org.jbpm.jpdl.par.ProcessArchive;
|
||||||
import org.jbpm.jpdl.xml.Problem;
|
import org.jbpm.jpdl.xml.Problem;
|
||||||
import org.jbpm.taskmgmt.def.Task;
|
import org.jbpm.taskmgmt.def.Task;
|
||||||
|
import org.jbpm.taskmgmt.def.TaskMgmtDefinition;
|
||||||
import org.jbpm.taskmgmt.exe.PooledActor;
|
import org.jbpm.taskmgmt.exe.PooledActor;
|
||||||
import org.jbpm.taskmgmt.exe.TaskInstance;
|
import org.jbpm.taskmgmt.exe.TaskInstance;
|
||||||
import org.springframework.util.StringUtils;
|
import org.springframework.util.StringUtils;
|
||||||
@@ -560,6 +561,51 @@ public class JBPMEngine extends BPMEngine
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* (non-Javadoc)
|
||||||
|
* @see org.alfresco.repo.workflow.WorkflowComponent#getAllTaskDefinitions(java.lang.String)
|
||||||
|
*/
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
public List<WorkflowTaskDefinition> getTaskDefinitions(final String workflowDefinitionId)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
return (List<WorkflowTaskDefinition>)jbpmTemplate.execute(new JbpmCallback()
|
||||||
|
{
|
||||||
|
public Object doInJbpm(JbpmContext context)
|
||||||
|
{
|
||||||
|
// retrieve process
|
||||||
|
GraphSession graphSession = context.getGraphSession();
|
||||||
|
ProcessDefinition processDefinition = getProcessDefinition(graphSession, workflowDefinitionId);
|
||||||
|
|
||||||
|
if (processDefinition == null)
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
String processName = processDefinition.getName();
|
||||||
|
if (tenantService.isEnabled())
|
||||||
|
{
|
||||||
|
tenantService.checkDomain(processName); // throws exception if domain mismatch
|
||||||
|
}
|
||||||
|
|
||||||
|
TaskMgmtDefinition taskMgmtDef = processDefinition.getTaskMgmtDefinition();
|
||||||
|
List<WorkflowTaskDefinition> workflowTaskDefs = new ArrayList<WorkflowTaskDefinition>();
|
||||||
|
for (Object task : taskMgmtDef.getTasks().values())
|
||||||
|
{
|
||||||
|
workflowTaskDefs.add(createWorkflowTaskDefinition((Task)task));
|
||||||
|
}
|
||||||
|
return (workflowTaskDefs.size() == 0) ? null : workflowTaskDefs;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
catch(JbpmException e)
|
||||||
|
{
|
||||||
|
throw new WorkflowException("Failed to retrieve workflow task definitions for workflow definition '" + workflowDefinitionId + "'", e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets a jBPM process definition
|
* Gets a jBPM process definition
|
||||||
*
|
*
|
||||||
|
@@ -148,6 +148,15 @@ public interface WorkflowService
|
|||||||
@Auditable(parameters = {"workflowDefinitionId"})
|
@Auditable(parameters = {"workflowDefinitionId"})
|
||||||
public byte[] getDefinitionImage(String workflowDefinitionId);
|
public byte[] getDefinitionImage(String workflowDefinitionId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the Task Definitions for the given Workflow Definition
|
||||||
|
*
|
||||||
|
* @param workflowDefinitionId the workflow definition id
|
||||||
|
* @return the deployed task definitions (or null if not found)
|
||||||
|
*/
|
||||||
|
@Auditable(parameters = {"workflowDefinitionId"})
|
||||||
|
public List<WorkflowTaskDefinition> getTaskDefinitions(final String workflowDefinitionId);
|
||||||
|
|
||||||
|
|
||||||
//
|
//
|
||||||
// Workflow Instance Management
|
// Workflow Instance Management
|
||||||
|
Reference in New Issue
Block a user