Added tests to ensure multi-tenancy works and fixed several multi-tenancy issues in workflow.

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@30563 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
N Smith
2011-09-16 09:34:02 +00:00
parent 8e9f5be725
commit 6d46ef90ec
29 changed files with 1047 additions and 403 deletions

View File

@@ -19,10 +19,14 @@
package org.alfresco.repo.workflow;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.alfresco.service.cmr.workflow.WorkflowAdminService;
import org.alfresco.service.cmr.workflow.WorkflowException;
import org.alfresco.util.collections.CollectionUtils;
import org.alfresco.util.collections.Filter;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -83,19 +87,9 @@ public class BPMEngineRegistry
{
throw new WorkflowException("Workflow Component already registered for engine id '" + engineId + "'");
}
if (workflowAdminService.isEngineEnabled(engineId))
{
workflowComponents.put(engineId, engine);
if (logger.isDebugEnabled())
logger.debug("Registered Workflow Component '" + engineId + "' (" + engine.getClass() + ")");
}
else
{
if (logger.isWarnEnabled())
logger.warn("Ignoring Workflow Component '" + engineId + "' (" + engine.getClass() + ") as the engine is disabled");
}
workflowComponents.put(engineId, engine);
if (logger.isDebugEnabled())
logger.debug("Registered Workflow Component '" + engineId + "' (" + engine.getClass() + ")");
}
/**
@@ -105,7 +99,7 @@ public class BPMEngineRegistry
*/
public String[] getWorkflowComponents()
{
return workflowComponents.keySet().toArray(new String[workflowComponents.keySet().size()]);
return getComponents(workflowComponents.keySet());
}
/**
@@ -116,6 +110,14 @@ public class BPMEngineRegistry
*/
public WorkflowComponent getWorkflowComponent(String engineId)
{
if(false == workflowAdminService.isEngineEnabled(engineId))
{
if(logger.isDebugEnabled())
{
logger.debug("Ignoring disabled WorkflowComponent: "+engineId);
}
return null;
}
return workflowComponents.get(engineId);
}
@@ -131,19 +133,9 @@ public class BPMEngineRegistry
{
throw new WorkflowException("Task Component already registered for engine id '" + engineId + "'");
}
if (workflowAdminService.isEngineEnabled(engineId))
{
taskComponents.put(engineId, engine);
if (logger.isDebugEnabled())
logger.debug("Registered Task Component '" + engineId + "' (" + engine.getClass() + ")");
}
else
{
if (logger.isWarnEnabled())
logger.warn("Ignoring Task Component '" + engineId + "' (" + engine.getClass() + ") as the engine is disabled");
}
taskComponents.put(engineId, engine);
if (logger.isDebugEnabled())
logger.debug("Registered Task Component '" + engineId + "' (" + engine.getClass() + ")");
}
/**
@@ -153,7 +145,19 @@ public class BPMEngineRegistry
*/
public String[] getTaskComponents()
{
return taskComponents.keySet().toArray(new String[taskComponents.keySet().size()]);
return getComponents(taskComponents.keySet());
}
private String[] getComponents(Set<String> components)
{
List<String> filtered = CollectionUtils.filter(components, new Filter<String>()
{
public Boolean apply(String engineId)
{
return workflowAdminService.isEngineEnabled(engineId);
}
});
return filtered.toArray(new String[filtered.size()]);
}
/**
@@ -164,6 +168,14 @@ public class BPMEngineRegistry
*/
public TaskComponent getTaskComponent(String engineId)
{
if(false == workflowAdminService.isEngineEnabled(engineId))
{
if(logger.isDebugEnabled())
{
logger.debug("Ignoring disabled TaskComponent: "+engineId);
}
return null;
}
return taskComponents.get(engineId);
}