Merged 1.4 to HEAD

svn merge svn://svn.alfresco.com:3691/alfresco/BRANCHES/V1.4@4252 svn://svn.alfresco.com:3691/alfresco/BRANCHES/V1.4@4294 .
   svn revert root\common\common.xml
   svn resolved root\projects\repository\config\alfresco\script-services-context.xml


git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@4634 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Derek Hulley
2006-12-18 13:45:11 +00:00
parent 8e0a637886
commit 72bb79696d
48 changed files with 1960 additions and 299 deletions

View File

@@ -100,8 +100,6 @@ public class WorkflowInterpreter
/**
* Main entry point.
*
* Syntax: AVMInteractiveConsole storage (new|old).
*/
public static void main(String[] args)
{
@@ -206,6 +204,8 @@ public class WorkflowInterpreter
/**
* Interpret a single command using the BufferedReader passed in for any data needed.
*
* TODO: Use decent parser!
*
* @param line The unparsed command
* @return The textual output of the command.
*/
@@ -300,14 +300,41 @@ public class WorkflowInterpreter
else if (command[1].equals("workflows"))
{
if (currentWorkflowDef == null)
String id = (currentWorkflowDef != null) ? currentWorkflowDef.id : null;
if (id == null && command.length == 2)
{
return "workflow definition not in use. Enter command use <workflowDefId>.\n";
return "workflow definition not in use. Enter command 'show workflows all' or 'use <workflowDefId>'.\n";
}
List<WorkflowInstance> workflows = workflowService.getActiveWorkflows(currentWorkflowDef.id);
for (WorkflowInstance workflow : workflows)
if (command.length == 3)
{
out.println("id: " + workflow.id + " , desc: " + workflow.description + " , start date: " + workflow.startDate + " , def: " + workflow.definition.title);
if (command[2].equals("all"))
{
id = "all";
}
else
{
return "Syntax Error.\n";
}
}
if (id.equals("all"))
{
for (WorkflowDefinition def : workflowService.getDefinitions())
{
List<WorkflowInstance> workflows = workflowService.getActiveWorkflows(def.id);
for (WorkflowInstance workflow : workflows)
{
out.println("id: " + workflow.id + " , desc: " + workflow.description + " , start date: " + workflow.startDate + " , def: " + workflow.definition.title);
}
}
}
else
{
List<WorkflowInstance> workflows = workflowService.getActiveWorkflows(id);
for (WorkflowInstance workflow : workflows)
{
out.println("id: " + workflow.id + " , desc: " + workflow.description + " , start date: " + workflow.startDate + " , def: " + workflow.definition.title);
}
}
}
@@ -485,6 +512,25 @@ public class WorkflowInterpreter
out.print(interpretCommand("deploy " + currentDeploy));
}
else if (command[0].equals("undeploy"))
{
if (command.length < 2)
{
return "Syntax Error.\n";
}
if (command[1].equals("definition"))
{
if (command.length != 3)
{
return "Syntax Error.\n";
}
workflowService.undeployDefinition(command[2]);
currentWorkflowDef = null;
currentPath = null;
out.print(interpretCommand("show definitions"));
}
}
else if (command[0].equals("use"))
{
if (command.length == 1)
@@ -526,8 +572,7 @@ public class WorkflowInterpreter
{
return "Syntax Error.\n";
}
}
}
}
else if (command[0].equals("user"))
@@ -659,11 +704,11 @@ public class WorkflowInterpreter
else if (command[0].equals("delete"))
{
if (command.length < 3)
if (command.length < 2)
{
return "Syntax Error.\n";
}
else if (command[1].equals("workflow"))
if (command[1].equals("workflow"))
{
String workflowId = (command.length == 3) ? command[2] : (currentPath == null) ? null : currentPath.instance.id;
if (workflowId == null)
@@ -673,6 +718,40 @@ public class WorkflowInterpreter
workflowService.deleteWorkflow(workflowId);
out.println("workflow " + workflowId + " deleted.");
}
else if (command[1].equals("all"))
{
if (command.length < 3)
{
return "Syntax Error.\n";
}
if (command[2].equals("workflows"))
{
if (command.length < 4)
{
return "Enter the command 'delete all workflows imeanit' to really delete all workflows\n";
}
if (command[3].equals("imeanit"))
{
for (WorkflowDefinition def : workflowService.getDefinitions())
{
List<WorkflowInstance> workflows = workflowService.getActiveWorkflows(def.id);
for (WorkflowInstance workflow : workflows)
{
workflowService.deleteWorkflow(workflow.id);
out.println("workflow " + workflow.id + " deleted.");
}
}
}
else
{
return "Syntax Error.\n";
}
}
else
{
return "Syntax Error.\n";
}
}
else
{
return "Syntax Error.\n";

View File

@@ -21,7 +21,11 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
import org.alfresco.repo.jscript.Classification;
import org.alfresco.repo.jscript.Search;
import org.alfresco.repo.jscript.Session;
import org.alfresco.service.ServiceRegistry;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.cmr.repository.ScriptService;
import org.alfresco.service.cmr.workflow.WorkflowException;
import org.dom4j.Element;
@@ -54,6 +58,7 @@ public class AlfrescoJavaScript extends JBPMSpringActionHandler
private static JpdlXmlReader jpdlReader = new JpdlXmlReader((InputSource)null);
private ScriptService scriptService;
private ServiceRegistry services;
private Element script;
@@ -64,6 +69,7 @@ public class AlfrescoJavaScript extends JBPMSpringActionHandler
protected void initialiseHandler(BeanFactory factory)
{
scriptService = (ScriptService)factory.getBean(ServiceRegistry.SCRIPT_SERVICE.getLocalName());
services = (ServiceRegistry)factory.getBean(ServiceRegistry.SERVICE_REGISTRY);
}
@@ -140,6 +146,16 @@ public class AlfrescoJavaScript extends JBPMSpringActionHandler
{
Map<String, Object> inputMap = new HashMap<String, Object>();
// initialise global script variables
JBPMNode companyHome = (JBPMNode)executionContext.getContextInstance().getVariable("companyhome");
if (companyHome != null)
{
NodeRef companyHomeRef = companyHome.getNodeRef();
inputMap.put("search", new Search(services, companyHomeRef.getStoreRef(), null));
inputMap.put("session", new Session(services, null));
inputMap.put("classification", new Classification(services, companyHomeRef.getStoreRef(), null));
}
// initialise process variables
Token token = executionContext.getToken();
inputMap.put("executionContext", executionContext);