Fixed ALF-9398: Alfresco deployments in the Activiti Admin UI need to be more descriptive than "Nameless Deployment"

A new method has been added to WorkflowService that takes an additional "name" parameter. The WorkflowDeployer now passes the name of the file being deployed as the name parameter.

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@29240 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Gavin Cornwell
2011-07-21 10:21:21 +00:00
parent 79ec6cd1e3
commit 81dfb2dd72
6 changed files with 75 additions and 23 deletions

View File

@@ -55,6 +55,17 @@ public interface WorkflowComponent
* @return workflow deployment descriptor * @return workflow deployment descriptor
*/ */
public WorkflowDeployment deployDefinition(InputStream workflowDefinition, String mimetype); public WorkflowDeployment deployDefinition(InputStream workflowDefinition, String mimetype);
/**
* Deploy a Workflow Definition
*
* @param workflowDefinition the content object containing the definition
* @param mimetype (optional) the mime type of the workflow definition
* @param name (optional) a name to represent the deployment
* @return workflow deployment descriptor
* @since 4.0
*/
public WorkflowDeployment deployDefinition(InputStream workflowDefinition, String mimetype, String name);
/** /**
* Is the specified Workflow Definition already deployed? * Is the specified Workflow Definition already deployed?

View File

@@ -280,7 +280,8 @@ public class WorkflowDeployer extends AbstractLifecycleBean
} }
else else
{ {
WorkflowDeployment deployment = workflowService.deployDefinition(engineId, workflowResource.getInputStream(), mimetype); WorkflowDeployment deployment = workflowService.deployDefinition(engineId, workflowResource.getInputStream(),
mimetype, workflowResource.getFilename());
logDeployment(location, deployment); logDeployment(location, deployment);
} }
} }

View File

@@ -165,9 +165,20 @@ public class WorkflowServiceImpl implements WorkflowService
* .lang.String, java.io.InputStream, java.lang.String) * .lang.String, java.io.InputStream, java.lang.String)
*/ */
public WorkflowDeployment deployDefinition(String engineId, InputStream workflowDefinition, String mimetype) public WorkflowDeployment deployDefinition(String engineId, InputStream workflowDefinition, String mimetype)
{
return deployDefinition(engineId, workflowDefinition, mimetype, null);
}
/*
* (non-Javadoc)
* @see
* org.alfresco.service.cmr.workflow.WorkflowService#deployDefinition(java
* .lang.String, java.io.InputStream, java.lang.String, java.lang.String)
*/
public WorkflowDeployment deployDefinition(String engineId, InputStream workflowDefinition, String mimetype, String name)
{ {
WorkflowComponent component = getWorkflowComponent(engineId); WorkflowComponent component = getWorkflowComponent(engineId);
WorkflowDeployment deployment = component.deployDefinition(workflowDefinition, mimetype); WorkflowDeployment deployment = component.deployDefinition(workflowDefinition, mimetype, name);
if (logger.isDebugEnabled() && deployment.getProblems().length > 0) if (logger.isDebugEnabled() && deployment.getProblems().length > 0)
{ {

View File

@@ -293,23 +293,33 @@ public class ActivitiWorkflowEngine extends BPMEngine implements WorkflowEngine
@Override @Override
public WorkflowDeployment deployDefinition(InputStream workflowDefinition, String mimetype) public WorkflowDeployment deployDefinition(InputStream workflowDefinition, String mimetype)
{ {
try return deployDefinition(workflowDefinition, mimetype, null);
{
String resourceName = GUID.generate() + BpmnDeployer.BPMN_RESOURCE_SUFFIX;
Deployment deployment = repoService.createDeployment()
.addInputStream(resourceName, workflowDefinition)
.deploy();
// No problems can be added to the WorkflowDeployment, warnings are
// not exposed
return typeConverter.convert(deployment);
}
catch(ActivitiException ae)
{
String msg = messageService.getMessage(ERR_DEPLOY_WORKFLOW);
throw new WorkflowException(msg, ae);
}
} }
/**
* {@inheritDoc}
*/
@Override
public WorkflowDeployment deployDefinition(InputStream workflowDefinition, String mimetype, String name)
{
try
{
String resourceName = GUID.generate() + BpmnDeployer.BPMN_RESOURCE_SUFFIX;
Deployment deployment = repoService.createDeployment()
.addInputStream(resourceName, workflowDefinition)
.name(name)
.deploy();
// No problems can be added to the WorkflowDeployment, warnings are
// not exposed
return typeConverter.convert(deployment);
}
catch(ActivitiException ae)
{
String msg = messageService.getMessage(ERR_DEPLOY_WORKFLOW);
throw new WorkflowException(msg, ae);
}
}
/** /**
* {@inheritDoc} * {@inheritDoc}

View File

@@ -284,13 +284,17 @@ public class JBPMEngine extends AlfrescoBpmEngine implements WorkflowEngine
// //
/* /*
* (non-Javadoc) * @see org.alfresco.repo.workflow.WorkflowComponent#deployDefinition(java.io.InputStream, java.lang.String)
*
* @see
* org.alfresco.repo.workflow.WorkflowDefinitionComponent#deployDefinition
* (java.io.InputStream)
*/ */
public WorkflowDeployment deployDefinition(final InputStream workflowDefinition, final String mimetype) public WorkflowDeployment deployDefinition(final InputStream workflowDefinition, final String mimetype)
{
return deployDefinition(workflowDefinition, mimetype, null);
}
/*
* @see org.alfresco.repo.workflow.WorkflowComponent#deployDefinition(java.io.InputStream, java.lang.String, java.lang.String)
*/
public WorkflowDeployment deployDefinition(final InputStream workflowDefinition, final String mimetype, final String name)
{ {
try try
{ {

View File

@@ -55,6 +55,21 @@ public interface WorkflowService
recordable = {true, false, true}) recordable = {true, false, true})
public WorkflowDeployment deployDefinition(String engineId, InputStream workflowDefinition, String mimetype); public WorkflowDeployment deployDefinition(String engineId, InputStream workflowDefinition, String mimetype);
/**
* Deploy a Workflow Definition to the Alfresco Repository
*
* @param engineId the bpm engine id
* @param workflowDefinition the workflow definition
* @param mimetype the mimetype of the workflow definition
* @param name a name representing the deployment
* @return workflow deployment descriptor
* @since 4.0
*/
@Auditable(
parameters = {"engineId", "workflowDefinition", "mimetype", "name"},
recordable = {true, false, true, true})
public WorkflowDeployment deployDefinition(String engineId, InputStream workflowDefinition, String mimetype, String name);
/** /**
* Deploy a Workflow Definition to the Alfresco Repository * Deploy a Workflow Definition to the Alfresco Repository
* *