Fix to WorkflowDefinitionType - ignore working copy

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@6778 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Jan Vonka
2007-09-13 16:05:55 +00:00
parent 75213e84ee
commit c872cb5bc5

View File

@@ -168,52 +168,60 @@ public class WorkflowDefinitionType implements ContentServicePolicies.OnContentU
public void beforeDeleteNode(NodeRef nodeRef) public void beforeDeleteNode(NodeRef nodeRef)
{ {
// Ignore if the node is a working copy undeploy(nodeRef);
if (nodeService.hasAspect(nodeRef, ContentModel.ASPECT_WORKING_COPY) == false)
{
undeploy(nodeRef);
}
} }
private void deploy(NodeRef nodeRef) private void deploy(NodeRef nodeRef)
{ {
// deploy / re-deploy // Ignore if the node is a working copy
WorkflowDeployment deployment = workflowService.deployDefinition(nodeRef); if (nodeService.hasAspect(nodeRef, ContentModel.ASPECT_WORKING_COPY) == false)
if (deployment != null)
{ {
WorkflowDefinition def = deployment.definition; Boolean value = (Boolean)nodeService.getProperty(nodeRef, WorkflowModel.PROP_WORKFLOW_DEF_DEPLOYED);
if ((value != null) && (value.booleanValue() == true))
// Update the meta data for the model {
Map<QName, Serializable> props = nodeService.getProperties(nodeRef); // deploy / re-deploy
WorkflowDeployment deployment = workflowService.deployDefinition(nodeRef);
props.put(WorkflowModel.PROP_WORKFLOW_DEF_NAME, def.getName());
if (deployment != null)
// TODO - ability to return and handle deployment problems / warnings
if (deployment.problems.length > 0)
{
for (String problem : deployment.problems)
{ {
logger.warn(problem); WorkflowDefinition def = deployment.definition;
// Update the meta data for the model
Map<QName, Serializable> props = nodeService.getProperties(nodeRef);
props.put(WorkflowModel.PROP_WORKFLOW_DEF_NAME, def.getName());
// TODO - ability to return and handle deployment problems / warnings
if (deployment.problems.length > 0)
{
for (String problem : deployment.problems)
{
logger.warn(problem);
}
}
nodeService.setProperties(nodeRef, props);
} }
} }
nodeService.setProperties(nodeRef, props);
} }
} }
private void undeploy(NodeRef nodeRef) private void undeploy(NodeRef nodeRef)
{ {
String defName = (String)nodeService.getProperty(nodeRef, WorkflowModel.PROP_WORKFLOW_DEF_NAME); // Ignore if the node is a working copy
if (defName != null) if (nodeService.hasAspect(nodeRef, ContentModel.ASPECT_WORKING_COPY) == false)
{ {
// Undeploy the workflow definition - all versions in JBPM String defName = (String)nodeService.getProperty(nodeRef, WorkflowModel.PROP_WORKFLOW_DEF_NAME);
List<WorkflowDefinition> defs = workflowService.getAllDefinitionsByName(defName); if (defName != null)
for (WorkflowDefinition def: defs)
{ {
logger.info("Undeploying workflow '" + defName + "' ..."); // Undeploy the workflow definition - all versions in JBPM
workflowService.undeployDefinition(def.getId()); List<WorkflowDefinition> defs = workflowService.getAllDefinitionsByName(defName);
logger.info("... undeployed '" + def.getId() + "' v" + def.getVersion()); for (WorkflowDefinition def: defs)
{
logger.info("Undeploying workflow '" + defName + "' ...");
workflowService.undeployDefinition(def.getId());
logger.info("... undeployed '" + def.getId() + "' v" + def.getVersion());
}
} }
} }
} }