private WorkflowDefinition makeWorkflowDefinition() { String id = "foo$workflowDefId"; String name = WF_DEF_NAME; String version = "1.0"; String title = "Foo Bar Title"; String description = "Foo Bar Description"; WorkflowTaskDefinition startTaskDefinition = makeTaskDefinition(); return new WorkflowDefinition(id, name, version, title, description, startTaskDefinition); }
private void checkDefinition(WorkflowDefinition expDef, WorkflowDefinition actualDef) { assertEquals(expDef.getId(), actualDef.getId()); assertEquals(expDef.getName(), actualDef.getName()); assertEquals(expDef.getDescription(), actualDef.getDescription()); assertEquals(expDef.getTitle(), actualDef.getTitle()); assertEquals(expDef.getVersion(), actualDef.getVersion()); }
@Override public String toString() { return "WorkflowDefinition[id=" + id + ",name=" + name + ",version=" + version + ",title=" + title + ",startTask=" + ((getStartTaskDefinition() == null) ? "undefined" : getStartTaskDefinition().toString()) + "]"; } }
private void logDeployment(Object location, WorkflowDeployment deployment) { if (logger.isDebugEnabled()) { String title = deployment.getDefinition().getTitle(); String version = deployment.getDefinition().getVersion(); int problemLength = deployment.getProblems().length; logger.debug("Workflow deployer: Deployed process definition '" + title + "' (version " + version + ") from '" + location + "' with " + problemLength + " problems"); } }
public void undeploy(NodeRef nodeRef) { // Ignore if the node is a working copy if (nodeService.hasAspect(nodeRef, ContentModel.ASPECT_WORKING_COPY) == false) { String defName = (String)nodeService.getProperty(nodeRef, WorkflowModel.PROP_WORKFLOW_DEF_NAME); if (defName != null) { // Undeploy the workflow definition List<WorkflowDefinition> defs = workflowService.getAllDefinitionsByName(defName); for (WorkflowDefinition def: defs) { if (logger.isDebugEnabled()) logger.debug("Undeploying workflow '" + defName + "' ..."); workflowService.undeployDefinition(def.getId()); if (logger.isDebugEnabled()) logger.debug("... undeployed '" + def.getId() + "' v" + def.getVersion()); } } } else { if (logger.isDebugEnabled()) logger.debug("Workflow deployer: Definition '" + nodeRef + "' not undeployed since it is a working copy"); } }
@Override protected String getItemURI(WorkflowDefinition item) { return "api/workflow-definitions/"+item.getId(); }
@Override protected String getItemType(WorkflowDefinition item) { return item.getName(); }
private WorkflowTask getWorkflowTask(String definitionName) { WorkflowDefinition reviewDef = workflowService.getDefinitionByName(definitionName); Map<QName, Serializable> properties = new HashMap<QName, Serializable>(); properties.put(WorkflowModel.ASSOC_ASSIGNEE, personManager.get(USER_ONE)); properties.put(WorkflowModel.ASSOC_PACKAGE, folder); WorkflowPath path = workflowService.startWorkflow(reviewDef.getId(), properties); WorkflowTask task = getTaskForPath(path); String startTaskId = reviewDef.getStartTaskDefinition().getId(); if (startTaskId.equals(task.getDefinition().getId())) { workflowService.endTask(task.getId(), null); task = getTaskForPath(path); } return task; }
public WorkflowDeployment deployDefinition(String engineId, InputStream workflowDefinition, String mimetype, String name) { WorkflowComponent component = getWorkflowComponent(engineId); WorkflowDeployment deployment = component.deployDefinition(workflowDefinition, mimetype, name); if (logger.isDebugEnabled() && deployment.getProblems().length > 0) { for (String problem : deployment.getProblems()) { logger.debug("Workflow definition '" + deployment.getDefinition().getTitle() + "' problem: " + problem); } } return deployment; }
@Override public String toString() { return "WorkflowInstance[id=" + id + ",active=" + active + ",def=" + definition.toString() + "]"; } }
@Override protected String getItemURI(WorkflowDefinition item) { return "api/workflow-definitions/"+item.getId(); }
@Override protected String getItemType(WorkflowDefinition item) { return item.getName(); }
public void undeploy(NodeRef nodeRef) { // Ignore if the node is a working copy if (nodeService.hasAspect(nodeRef, ContentModel.ASPECT_WORKING_COPY) == false) { String defName = (String)nodeService.getProperty(nodeRef, WorkflowModel.PROP_WORKFLOW_DEF_NAME); if (defName != null) { // Undeploy the workflow definition List<WorkflowDefinition> defs = workflowService.getAllDefinitionsByName(defName); for (WorkflowDefinition def: defs) { if (logger.isDebugEnabled()) logger.debug("Undeploying workflow '" + defName + "' ..."); workflowService.undeployDefinition(def.getId()); if (logger.isDebugEnabled()) logger.debug("... undeployed '" + def.getId() + "' v" + def.getVersion()); } } } else { if (logger.isDebugEnabled()) logger.debug("Workflow deployer: Definition '" + nodeRef + "' not undeployed since it is a working copy"); } }
private void logDeployment(Object location, WorkflowDeployment deployment) { if (logger.isDebugEnabled()) { String title = deployment.getDefinition().getTitle(); String version = deployment.getDefinition().getVersion(); int problemLength = deployment.getProblems().length; logger.debug("Workflow deployer: Deployed process definition '" + title + "' (version " + version + ") from '" + location + "' with " + problemLength + " problems"); } }
public void testStartTask() WorkflowTaskDefinition startTaskDef = workflowDef.getStartTaskDefinition(); assertNotNull(startTaskDef); WorkflowPath path = workflowService.startWorkflow(workflowDef.getId(), params); assertNotNull(path); assertTrue(path.isActive());
public WorkflowDeployment deployDefinition(String engineId, InputStream workflowDefinition, String mimetype, String name) { WorkflowComponent component = getWorkflowComponent(engineId); WorkflowDeployment deployment = component.deployDefinition(workflowDefinition, mimetype, name); if (logger.isDebugEnabled() && deployment.getProblems().length > 0) { for (String problem : deployment.getProblems()) { logger.debug("Workflow definition '" + deployment.getDefinition().getTitle() + "' problem: " + problem); } } return deployment; }
@Override public String toString() { return "WorkflowInstance[id=" + id + ",active=" + active + ",def=" + definition.toString() + "]"; } }
@Test public void testGetDefinitionByName() throws Exception { WorkflowDefinition definition = deployTestTaskDefinition(); WorkflowDefinition result = workflowEngine.getDefinitionByName(definition.getName()); assertNotNull("The workflow definition was not found!", result); assertEquals(definition.getId(), result.getId()); assertEquals(definition.getDescription(), result.getDescription()); assertEquals(definition.getName(), result.getName()); assertEquals(definition.getTitle(), result.getTitle()); assertEquals(definition.getVersion(), result.getVersion()); workflowEngine.undeployDefinition(definition.getId()); WorkflowDefinition nullResult = workflowEngine.getDefinitionByName(definition.getName()); assertNull("The workflow definition was found but should be null!", nullResult); }