[jbpm-commits] JBoss JBPM SVN: r3122 - in projects/gwt-console/trunk/server: src/main/java/org/jboss/bpm/console/server/integration and 2 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Thu Nov 27 07:57:32 EST 2008
Author: thomas.diesler at jboss.com
Date: 2008-11-27 07:57:32 -0500 (Thu, 27 Nov 2008)
New Revision: 3122
Modified:
projects/gwt-console/trunk/server/deploy.sh
projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/integration/ManagementFactory.java
projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/integration/jbpm3/Transform.java
projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/integration/spec/ProcessManagementImpl.java
Log:
Enabple spec integration for process management
Modified: projects/gwt-console/trunk/server/deploy.sh
===================================================================
--- projects/gwt-console/trunk/server/deploy.sh 2008-11-27 12:09:28 UTC (rev 3121)
+++ projects/gwt-console/trunk/server/deploy.sh 2008-11-27 12:57:32 UTC (rev 3122)
@@ -1,3 +1,10 @@
#! /bin/bash
-cp target/gwt-console-server.war $JBOSS422/server/default/deploy/jbpm
+mvn -o install
+
+SRC=target/gwt-console-server.war
+DEST=$JBOSS422/server/default/deploy/jbpm
+
+echo
+echo "cp $SRC $DEST"
+cp $SRC $DEST
Modified: projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/integration/ManagementFactory.java
===================================================================
--- projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/integration/ManagementFactory.java 2008-11-27 12:09:28 UTC (rev 3121)
+++ projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/integration/ManagementFactory.java 2008-11-27 12:57:32 UTC (rev 3122)
@@ -36,8 +36,8 @@
{
public static ManagementFactory newInstance()
{
- // return new ManagementFactoryImpl();
- return new JBPM3ManagementFactory();
+ return new ManagementFactoryImpl();
+ //return new JBPM3ManagementFactory();
}
public abstract ProcessManagement createProcessManagement();
Modified: projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/integration/jbpm3/Transform.java
===================================================================
--- projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/integration/jbpm3/Transform.java 2008-11-27 12:09:28 UTC (rev 3121)
+++ projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/integration/jbpm3/Transform.java 2008-11-27 12:57:32 UTC (rev 3122)
@@ -61,7 +61,7 @@
private static TokenReference tokenReference(Token t0)
{
- TokenReference token = new TokenReference(t0.getId(), t0.getName(), t0.getNode().getName());
+ TokenReference token = new TokenReference(t0.getId(), null, t0.getNode().getName());
if(t0.hasActiveChildren() || t0.isTerminatedImplicitly())
token.setCanBeSignaled(false);
Modified: projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/integration/spec/ProcessManagementImpl.java
===================================================================
--- projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/integration/spec/ProcessManagementImpl.java 2008-11-27 12:09:28 UTC (rev 3121)
+++ projects/gwt-console/trunk/server/src/main/java/org/jboss/bpm/console/server/integration/spec/ProcessManagementImpl.java 2008-11-27 12:57:32 UTC (rev 3122)
@@ -32,13 +32,19 @@
import org.jboss.bpm.api.client.Configuration;
import org.jboss.bpm.api.client.ProcessEngine;
import org.jboss.bpm.api.client.Token;
+import org.jboss.bpm.api.client.Token.TokenStatus;
+import org.jboss.bpm.api.model.Gateway;
+import org.jboss.bpm.api.model.Node;
import org.jboss.bpm.api.model.Process;
import org.jboss.bpm.api.model.ProcessDefinition;
+import org.jboss.bpm.api.model.SequenceFlow;
+import org.jboss.bpm.api.model.SingleOutFlowSupport;
import org.jboss.bpm.api.model.Process.ProcessStatus;
import org.jboss.bpm.api.service.ProcessDefinitionService;
import org.jboss.bpm.api.service.ProcessService;
import org.jboss.bpm.console.client.model.ProcessDefinitionRef;
import org.jboss.bpm.console.client.model.ProcessInstanceRef;
+import org.jboss.bpm.console.client.model.jbpm3.TokenReference;
import org.jboss.bpm.console.server.integration.ProcessManagement;
/**
@@ -50,11 +56,11 @@
public class ProcessManagementImpl implements ProcessManagement
{
private static final Log log = LogFactory.getLog(ProcessManagementImpl.class);
-
+
public List<ProcessDefinitionRef> getProcessDefinitions()
{
log.info("getProcessDefinitions");
-
+
List<ProcessDefinitionRef> results = new ArrayList<ProcessDefinitionRef>();
ProcessDefinitionService pdService = getProcessDefinitionService();
Iterator<ObjectName> itKey = pdService.getProcessDefinitions().iterator();
@@ -62,9 +68,9 @@
{
ObjectName procDefKey = itKey.next();
ProcessDefinition procDef = pdService.getProcessDefinition(procDefKey);
-
+
log.info(procDef);
-
+
ProcessDefinitionRef pdRef = adaptProcessDefinition(procDef);
results.add(pdRef);
}
@@ -75,7 +81,7 @@
{
ProcessDefinition procDef = getProcessDefinitionInternal(procDefId);
log.info("getProcessDefinition: " + procDef);
-
+
return procDef != null ? new ProcessDefinitionRef(procDefId, procDef.getName(), procDef.getVersion()) : null;
}
@@ -83,7 +89,7 @@
{
ProcessDefinition procDef = getProcessDefinitionInternal(procDefId);
log.info("removeDefinition: " + procDef);
-
+
if (procDef != null)
{
ProcessDefinitionService pdService = getProcessDefinitionService();
@@ -96,15 +102,15 @@
{
ProcessDefinition procDef = getProcessDefinitionInternal(procDefId);
log.info("newInstance: " + procDef);
-
+
if (procDef == null)
throw new IllegalStateException("Cannot obtain process definition: " + procDefId);
Process proc = procDef.newInstance();
proc.startProcess();
-
+
log.info("Started: " + proc);
-
+
ProcessInstanceRef procRef = adaptProcess(proc);
return procRef;
}
@@ -117,16 +123,16 @@
throw new IllegalStateException("Cannot obtain process definition: " + procDefId);
log.info("getProcessInstances: " + procDef);
-
+
ProcessService procService = getProcessService();
Iterator<ObjectName> itProc = procService.getProcesses(procDef.getKey(), null).iterator();
while (itProc.hasNext())
{
ObjectName procID = itProc.next();
Process proc = procService.getProcess(procID);
-
+
log.info(proc);
-
+
results.add(adaptProcess(proc));
}
@@ -137,7 +143,7 @@
{
Process proc = getProcessById(procID);
log.info("getProcessInstance: " + proc);
-
+
ProcessInstanceRef procRef = adaptProcess(proc);
return procRef;
}
@@ -161,12 +167,12 @@
}
}
}
-
+
if (token == null)
throw new IllegalStateException("Cannot obtain token: " + tokenId);
log.info("signalToken: " + token);
-
+
// Signal the token
token.signal(name);
}
@@ -233,14 +239,53 @@
Long procDefID = apaptKey(proc.getProcessDefinition().getKey());
Long procID = apaptKey(proc.getKey());
- // [TODO] clarify process status
- ProcessStatus status = proc.getProcessStatus();
- boolean suspended = ProcessStatus.Active != status;
+ // The BPM Spec does not (yet) have the notion of a suspended Process
+ boolean suspended = false;
+
+ ProcessInstanceRef procRef = new ProcessInstanceRef(procID, procDefID, proc.getStartDate(), proc.getEndDate(), suspended);
- ProcessInstanceRef procRef = new ProcessInstanceRef(procID, procDefID, proc.getStartDate(), proc.getEndDate(), suspended);
+ Token rootToken = proc.getRootToken();
+ procRef.setRootToken(adaptToken(rootToken));
+
return procRef;
}
+ private TokenReference adaptToken(Token token)
+ {
+ Long tokenId = apaptKey(token.getKey());
+ token.getKey();
+
+ Node currNode = token.getCurrentNode();
+ TokenReference tokenRef = new TokenReference(tokenId, null, currNode.getName());
+
+ TokenStatus tokenStatus = token.getTokenStatus();
+ tokenRef.setCanBeSignaled(tokenStatus == TokenStatus.Suspended);
+
+ for (Token child : token.getChildTokens())
+ tokenRef.getChildren().add(adaptToken(child));
+
+ if (currNode instanceof SingleOutFlowSupport)
+ {
+ SingleOutFlowSupport flowSupport = (SingleOutFlowSupport)currNode;
+ String targetRef = flowSupport.getOutFlow().getTargetRef();
+ tokenRef.getAvailableSignals().add(targetRef);
+ }
+ if (currNode instanceof Gateway)
+ {
+ Gateway gateway = (Gateway)currNode;
+ for (SequenceFlow gate : gateway.getGates())
+ {
+ String sigName = gate.getName();
+ if (sigName == null)
+ sigName = gate.getTargetRef();
+
+ tokenRef.getAvailableSignals().add(sigName);
+ }
+ }
+
+ return tokenRef;
+ }
+
private Long apaptKey(ObjectName key)
{
String id = key.getKeyProperty("id");
More information about the jbpm-commits
mailing list