[jbpm-commits] JBoss JBPM SVN: r3255 - in jbpm3/trunk/modules/integration: spec/src/main/java/org/jbpm/integration/spec/model and 5 other directories.
do-not-reply at jboss.org
do-not-reply at jboss.org
Sun Dec 7 08:54:55 EST 2008
Author: thomas.diesler at jboss.com
Date: 2008-12-07 08:54:54 -0500 (Sun, 07 Dec 2008)
New Revision: 3255
Added:
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/ProcessInstanceServiceImpl.java
Removed:
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/ProcessServiceImpl.java
Modified:
jbpm3/trunk/modules/integration/jboss42/src/main/etc/jboss-beans.xml
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/AbstractElementImpl.java
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/EndEventImpl.java
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/EventImpl.java
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/ExclusiveGatewayImpl.java
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/ExpressionImpl.java
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/GatewayImpl.java
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/NodeImpl.java
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/NoneTaskImpl.java
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/ParallelGatewayForkImpl.java
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/ParallelGatewayJoinImpl.java
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/ProcessDefinitionImpl.java
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/ProcessInstanceImpl.java
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/SequenceFlowImpl.java
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/StartEventImpl.java
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/TaskImpl.java
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/UserTaskImpl.java
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/WaitStateImpl.java
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/builder/GatewayBuilderImpl.java
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/builder/ProcessBuilderImpl.java
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/runtime/InvocationProxy.java
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/runtime/InvocationProxySupport.java
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/runtime/NodeExecuteInterceptor.java
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/runtime/NodeInterceptor.java
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/runtime/TokenAttachmentDelegate.java
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/runtime/TokenImpl.java
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/DeploymentServiceImpl.java
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/DialectHandlerServiceImpl.java
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/ExecutionContextServiceImpl.java
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/ExecutionServiceImpl.java
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/IdentityServiceImpl.java
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/NoopPersistenceServiceImpl.java
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/ProcessBuilderServiceImpl.java
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/ProcessDefinitionServiceImpl.java
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/TaskServiceImpl.java
jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/task/TaskInstanceImpl.java
jbpm3/trunk/modules/integration/spec/src/main/resources/jbpm-cfg-beans.xml
Log:
Use ProcessInstanceService
Modified: jbpm3/trunk/modules/integration/jboss42/src/main/etc/jboss-beans.xml
===================================================================
--- jbpm3/trunk/modules/integration/jboss42/src/main/etc/jboss-beans.xml 2008-12-07 13:19:26 UTC (rev 3254)
+++ jbpm3/trunk/modules/integration/jboss42/src/main/etc/jboss-beans.xml 2008-12-07 13:54:54 UTC (rev 3255)
@@ -30,7 +30,7 @@
<bean name="BPMPersistenceService" class="org.jbpm.integration.spec.service.NoopPersistenceServiceImpl" />
<!-- The ProcessService -->
- <bean name="BPMProcessService" class="org.jbpm.integration.spec.service.ProcessServiceImpl">
+ <bean name="BPMProcessService" class="org.jbpm.integration.spec.service.ProcessInstanceServiceImpl">
<property name="interceptors">
<list elementClass="java.lang.String">
<value>org.jbpm.integration.spec.runtime.NodeExecuteInterceptor</value>
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/AbstractElementImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/AbstractElementImpl.java 2008-12-07 13:19:26 UTC (rev 3254)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/AbstractElementImpl.java 2008-12-07 13:54:54 UTC (rev 3255)
@@ -49,7 +49,7 @@
{
this.engine = engine;
this.objClass = objClass;
-
+
// Store the ID of the underlying jBPM3 object
objID = tempObj.getId();
if (objID == 0)
@@ -65,17 +65,17 @@
public T getDelegate()
{
T retObj = null;
-
+
// Determine the current ID to use
long currID = objID;
if (currID == 0 && tempObj != null)
currID = tempObj.getId();
-
+
// If there is no ID, use the tmp object
if (currID == 0 && tempObj != null)
retObj = tempObj;
- // Get the delegate from the persistence session
+ // Get the delegate from the persistence session
if (retObj == null)
{
if (objClass == null || currID == 0)
@@ -84,7 +84,7 @@
// From now on use this object ID
objID = currID;
tempObj = null;
-
+
ExecutionContextService execService = getProcessEngine().getService(ExecutionContextService.class);
ExecutionContext bpmContext = execService.getExecutionContext(true);
try
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/EndEventImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/EndEventImpl.java 2008-12-07 13:19:26 UTC (rev 3254)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/EndEventImpl.java 2008-12-07 13:54:54 UTC (rev 3255)
@@ -32,7 +32,7 @@
import org.jbpm.graph.node.EndState;
/**
- * An integration wrapper
+ * An integration wrapper
*
* @author thomas.diesler at jboss.com
* @since 15-Nov-2008
@@ -40,25 +40,25 @@
public class EndEventImpl extends EventImpl<EndState> implements EndEvent
{
private static final long serialVersionUID = 1L;
-
+
public EndEventImpl(ProcessEngine engine, ProcessDefinition procDef, Node oldEnd)
{
super(engine, procDef, EndState.class, oldEnd);
}
- //@Override
+ // @Override
public EventDetailType getResultType()
{
return EventDetailType.None;
}
- //@Override
+ // @Override
public EventType getEventType()
{
return EventType.End;
}
- //@Override
+ // @Override
public SequenceFlow getInFlow()
{
List<SequenceFlow> inFlows = getInFlows();
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/EventImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/EventImpl.java 2008-12-07 13:19:26 UTC (rev 3254)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/EventImpl.java 2008-12-07 13:54:54 UTC (rev 3255)
@@ -27,7 +27,7 @@
import org.jbpm.graph.def.Node;
/**
- * An integration wrapper
+ * An integration wrapper
*
* @author thomas.diesler at jboss.com
* @since 15-Nov-2008
@@ -35,7 +35,7 @@
public abstract class EventImpl<T extends Node> extends NodeImpl<T> implements Event
{
private static final long serialVersionUID = 1L;
-
+
public EventImpl(ProcessEngine engine, ProcessDefinition procDef, Class<T> clazz, Node oldNode)
{
super(engine, procDef, clazz, oldNode);
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/ExclusiveGatewayImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/ExclusiveGatewayImpl.java 2008-12-07 13:19:26 UTC (rev 3254)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/ExclusiveGatewayImpl.java 2008-12-07 13:54:54 UTC (rev 3255)
@@ -55,13 +55,13 @@
getDelegate().setDecisionDelegation(new Delegation(decisionHandler));
}
- //@Override
+ // @Override
public GatewayType getGatewayType()
{
return GatewayType.Exclusive;
}
-
- //@Override
+
+ // @Override
public ExclusiveType getExclusiveType()
{
return ExclusiveType.Data;
@@ -71,12 +71,12 @@
{
private static final long serialVersionUID = 1L;
- //@Override
+ // @Override
public String decide(ExecutionContext execContext) throws Exception
{
ProcessEngine engine = getProcessDefinition().getProcessEngine();
Token token = TokenImpl.newInstance(engine, execContext.getToken());
-
+
SequenceFlow selectedGate = null;
for (SequenceFlow auxGate : getGates())
{
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/ExpressionImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/ExpressionImpl.java 2008-12-07 13:19:26 UTC (rev 3254)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/ExpressionImpl.java 2008-12-07 13:54:54 UTC (rev 3255)
@@ -53,13 +53,13 @@
this.lang = lang;
}
- //@Override
+ // @Override
public ExpressionLanguage getExpressionLanguage()
{
return lang;
}
- //@Override
+ // @Override
public String getExpressionBody()
{
return body;
@@ -77,7 +77,7 @@
}
return expr;
}
-
+
public String toString()
{
return "[" + lang + ":" + body + "]";
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/GatewayImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/GatewayImpl.java 2008-12-07 13:19:26 UTC (rev 3254)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/GatewayImpl.java 2008-12-07 13:54:54 UTC (rev 3255)
@@ -45,19 +45,19 @@
super(engine, procDef, clazz, oldNode);
}
- //@Override
+ // @Override
public List<SequenceFlow> getGates()
{
return getOutFlows();
}
- //@Override
+ // @Override
public SequenceFlow getGateByName(String targetName)
{
throw new NotImplementedException();
}
- //@Override
+ // @Override
public SequenceFlow getDefaultGate()
{
throw new NotImplementedException();
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/NodeImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/NodeImpl.java 2008-12-07 13:19:26 UTC (rev 3254)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/NodeImpl.java 2008-12-07 13:54:54 UTC (rev 3255)
@@ -41,7 +41,7 @@
import org.jbpm.integration.spec.runtime.InvocationProxy;
/**
- * An integration wrapper
+ * An integration wrapper
*
* @author thomas.diesler at jboss.com
* @since 15-Nov-2008
@@ -49,9 +49,9 @@
public abstract class NodeImpl<T extends org.jbpm.graph.def.Node> extends AbstractElementImpl<T> implements Node
{
private static final long serialVersionUID = 1L;
-
+
private ProcessDefinition procDef;
-
+
private List<SequenceFlow> outFlows = new ArrayList<SequenceFlow>();
private List<SequenceFlow> inFlows = new ArrayList<SequenceFlow>();
@@ -66,7 +66,7 @@
long id = getDelegate().getId();
return ObjectNameFactory.create(Constants.ID_DOMAIN + ":node=" + getName() + ",id=" + id);
}
-
+
public String getName()
{
return getDelegate().getNameExt();
@@ -81,7 +81,7 @@
{
throw new NotImplementedException();
}
-
+
@SuppressWarnings("unchecked")
public void addSequenceFlow(SequenceFlowImpl flow)
{
@@ -89,16 +89,16 @@
NodeImpl<T> targetNode = (NodeImpl<T>)procDef.getNode(targetRef);
if (targetNode == null)
throw new InvalidProcessException("Cannot obtain target node: " + targetRef);
-
+
org.jbpm.graph.def.Node delegate = getDelegate();
-
+
Transition trans = flow.getOldTransition();
if (delegate.hasLeavingTransition(trans.getName()) == false)
{
delegate.addLeavingTransition(trans);
targetNode.getDelegate().addArrivingTransition(trans);
}
-
+
if (flow.getConditionType() == ConditionType.Expression)
{
trans.setCondition(flow.getConditionExpression().toString());
@@ -107,11 +107,11 @@
{
trans.setCondition("[" + ConditionType.Default + "]");
}
-
+
targetNode.inFlows.add(flow);
outFlows.add(flow);
}
-
+
public SequenceFlow getOutFlowByTransition(Transition trans)
{
SequenceFlow outFlow = null;
@@ -126,7 +126,7 @@
}
return outFlow;
}
-
+
public List<SequenceFlow> getInFlows()
{
return Collections.unmodifiableList(inFlows);
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/NoneTaskImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/NoneTaskImpl.java 2008-12-07 13:19:26 UTC (rev 3254)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/NoneTaskImpl.java 2008-12-07 13:54:54 UTC (rev 3255)
@@ -41,7 +41,7 @@
super(engine, procDef, Node.class, oldNode);
}
- //@Override
+ // @Override
public TaskType getTaskType()
{
return TaskType.None;
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/ParallelGatewayForkImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/ParallelGatewayForkImpl.java 2008-12-07 13:19:26 UTC (rev 3254)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/ParallelGatewayForkImpl.java 2008-12-07 13:54:54 UTC (rev 3255)
@@ -43,8 +43,7 @@
{
super(engine, procDef, Fork.class, oldFork);
}
-
- // @Override
+
public GatewayType getGatewayType()
{
return GatewayType.Parallel;
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/ParallelGatewayJoinImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/ParallelGatewayJoinImpl.java 2008-12-07 13:19:26 UTC (rev 3254)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/ParallelGatewayJoinImpl.java 2008-12-07 13:54:54 UTC (rev 3255)
@@ -44,7 +44,6 @@
super(engine, procDef, Join.class, oldJoin);
}
- // @Override
public GatewayType getGatewayType()
{
return GatewayType.Parallel;
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/ProcessDefinitionImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/ProcessDefinitionImpl.java 2008-12-07 13:19:26 UTC (rev 3254)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/ProcessDefinitionImpl.java 2008-12-07 13:54:54 UTC (rev 3255)
@@ -68,14 +68,14 @@
}
return procDef;
}
-
+
private ProcessDefinitionImpl(ProcessEngine engine, org.jbpm.graph.def.ProcessDefinition tmpProcDef)
{
super(engine, tmpProcDef, org.jbpm.graph.def.ProcessDefinition.class);
if (tmpProcDef.getName() == null)
throw new InvalidProcessException("ProcessDefinition name cannot be null");
-
+
if (tmpProcDef.getId() > 0)
keyCache = getKey(tmpProcDef);
}
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/ProcessInstanceImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/ProcessInstanceImpl.java 2008-12-07 13:19:26 UTC (rev 3254)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/ProcessInstanceImpl.java 2008-12-07 13:54:54 UTC (rev 3255)
@@ -57,7 +57,7 @@
private static final long serialVersionUID = 1L;
private ObjectName keyCache;
-
+
public static ProcessInstance newInstance(ProcessEngine engine, org.jbpm.graph.exe.ProcessInstance tmpProc, boolean proxy)
{
ProcessInstance proc = new ProcessInstanceImpl(engine, tmpProc);
@@ -67,16 +67,15 @@
}
return proc;
}
-
+
private ProcessInstanceImpl(ProcessEngine engine, org.jbpm.graph.exe.ProcessInstance tmpProc)
{
super(engine, tmpProc, org.jbpm.graph.exe.ProcessInstance.class);
-
+
if (tmpProc.getId() > 0)
keyCache = getKey(tmpProc);
}
- // @Override
public ObjectName getKey()
{
ObjectName objKey = keyCache;
@@ -95,24 +94,22 @@
org.jbpm.graph.def.ProcessDefinition oldProcDef = procInst.getProcessDefinition();
return ObjectNameFactory.create(Constants.ID_DOMAIN + ":procInst=" + oldProcDef.getName() + ",id=" + procInst.getId());
}
-
- // @Override
+
public ProcessDefinition getProcessDefinition()
{
org.jbpm.graph.def.ProcessDefinition oldProcDef = getDelegate().getProcessDefinition();
return ProcessDefinitionImpl.newInstance(getProcessEngine(), oldProcDef, true);
}
- // @Override
public ProcessStatus getProcessStatus()
{
Token rootToken = getRootToken();
TokenStatus tokenStatus = rootToken != null ? rootToken.getTokenStatus() : null;
-
+
org.jbpm.graph.exe.ProcessInstance oldProcInst = getDelegate();
ProcessStatus status = ProcessStatus.None;
-
+
if (oldProcInst.getStart() != null)
status = ProcessStatus.Active;
@@ -121,13 +118,13 @@
if (oldProcInst.hasEnded() || tokenStatus == TokenStatus.Destroyed)
status = ProcessStatus.Completed;
-
+
return status;
}
public void setProcessStatus(ProcessStatus status)
{
- //this.status = status;
+ // this.status = status;
}
public Token getRootToken()
@@ -140,7 +137,6 @@
return token;
}
- // @Override
public String getName()
{
return getProcessDefinition().getName();
@@ -156,37 +152,31 @@
return getDelegate().getStart();
}
- // @Override
public <T extends Node> T getNode(Class<T> clazz, String name)
{
return getProcessDefinition().getNode(clazz, name);
}
- // @Override
public Node getNode(String name)
{
return getProcessDefinition().getNode(name);
}
- // @Override
public List<Node> getNodes()
{
return getProcessDefinition().getNodes();
}
- // @Override
public <T extends Node> List<T> getNodes(Class<T> clazz)
{
return getProcessDefinition().getNodes(clazz);
}
- // @Override
public Token startProcess()
{
return startProcess(null);
}
- // @Override
public Token startProcess(Attachments contextData)
{
ExecutionContextService ctxService = getProcessEngine().getService(ExecutionContextService.class);
@@ -199,7 +189,7 @@
procService.registerInstance(this);
org.jbpm.graph.exe.ProcessInstance procInst = getDelegate();
-
+
// Initialize the members
org.jbpm.graph.exe.Token rootToken = new org.jbpm.graph.exe.Token(procInst);
procInst.setStart(Clock.getCurrentTime());
@@ -207,7 +197,7 @@
// Create the root token
Token token = TokenImpl.newInstance(getProcessEngine(), rootToken);
-
+
// Save the root token
JbpmContext jbpmContext = bpmContext.getAttachment(JbpmContext.class);
jbpmContext.getSession().save(rootToken);
@@ -225,10 +215,10 @@
// Set process to active
setProcessStatus(ProcessStatus.Active);
-
+
// Fire the start event
procInst.fireStartEvent(rootToken.getNode());
-
+
// Signal the root token
token.signal();
@@ -255,7 +245,7 @@
ProcessStatus status = getProcessStatus();
if (status != ProcessStatus.Active)
throw new IllegalStateException("Cannot suspend a process in state: " + status);
-
+
getDelegate().suspend();
}
@@ -264,7 +254,7 @@
ProcessStatus status = getProcessStatus();
if (status != ProcessStatus.Suspended)
throw new IllegalStateException("Cannot resume a process in state: " + status);
-
+
getDelegate().resume();
}
@@ -273,7 +263,7 @@
ProcessStatus status = getProcessStatus();
if (status != ProcessStatus.Active && status != ProcessStatus.Suspended)
throw new IllegalStateException("Cannot cancel a process in state: " + status);
-
+
org.jbpm.graph.exe.ProcessInstance delegate = getDelegate();
delegate.setEnd(new Date());
delegate.end();
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/SequenceFlowImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/SequenceFlowImpl.java 2008-12-07 13:19:26 UTC (rev 3254)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/SequenceFlowImpl.java 2008-12-07 13:54:54 UTC (rev 3255)
@@ -49,7 +49,7 @@
public SequenceFlowImpl(Transition oldTrans, ExpressionLanguage exprLang, String exprBody)
{
this.oldTrans = oldTrans;
-
+
if (exprLang != null && exprBody != null)
{
this.condType = ConditionType.Expression;
@@ -68,38 +68,38 @@
return oldTrans;
}
- //@Override
+ // @Override
public String getName()
{
return oldTrans.getName();
}
- //@Override
+ // @Override
public Expression getConditionExpression()
{
return expr;
}
- //@Override
+ // @Override
public ConditionType getConditionType()
{
return condType;
}
- //@Override
+ // @Override
public String getSourceRef()
{
Node from = oldTrans.getFrom();
return from != null ? from.getName() : null;
}
- //@Override
+ // @Override
public String getTargetRef()
{
Node to = oldTrans.getTo();
return to != null ? to.getName() : null;
}
-
+
public String toString()
{
return "[" + getSourceRef() + "->" + getTargetRef() + ",cond=" + condType + "]";
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/StartEventImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/StartEventImpl.java 2008-12-07 13:19:26 UTC (rev 3254)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/StartEventImpl.java 2008-12-07 13:54:54 UTC (rev 3255)
@@ -46,19 +46,16 @@
super(engine, procDef, StartState.class, oldStart);
}
- // @Override
public EventDetailType getTriggerType()
{
return EventDetailType.None;
}
- // @Override
public EventType getEventType()
{
return EventType.Start;
}
- // @Override
public SequenceFlow getOutFlow()
{
List<SequenceFlow> outFlows = getOutFlows();
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/TaskImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/TaskImpl.java 2008-12-07 13:19:26 UTC (rev 3254)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/TaskImpl.java 2008-12-07 13:54:54 UTC (rev 3255)
@@ -45,7 +45,7 @@
super(engine, procDef, clazz, oldNode);
}
- //@Override
+ // @Override
public SequenceFlow getInFlow()
{
List<SequenceFlow> inFlows = getInFlows();
@@ -57,7 +57,7 @@
return inFlows.get(0);
}
- //@Override
+ // @Override
public SequenceFlow getOutFlow()
{
List<SequenceFlow> outFlows = getOutFlows();
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/UserTaskImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/UserTaskImpl.java 2008-12-07 13:19:26 UTC (rev 3254)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/UserTaskImpl.java 2008-12-07 13:54:54 UTC (rev 3255)
@@ -45,7 +45,6 @@
super(engine, procDef, TaskNode.class, oldTaskNode);
}
- // @Override
public TaskType getTaskType()
{
return TaskType.User;
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/WaitStateImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/WaitStateImpl.java 2008-12-07 13:19:26 UTC (rev 3254)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/WaitStateImpl.java 2008-12-07 13:54:54 UTC (rev 3255)
@@ -42,7 +42,7 @@
super(engine, procDef, State.class, oldState);
}
- //@Override
+ // @Override
public TaskType getTaskType()
{
return TaskType.Wait;
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/builder/GatewayBuilderImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/builder/GatewayBuilderImpl.java 2008-12-07 13:19:26 UTC (rev 3254)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/builder/GatewayBuilderImpl.java 2008-12-07 13:54:54 UTC (rev 3255)
@@ -45,7 +45,7 @@
addSequenceFlow(targetName);
return this;
}
-
+
public GatewayBuilder addConditionalGate(String targetName, ExpressionLanguage exprLang, String exprBody)
{
addSequenceFlow(targetName, exprLang, exprBody);
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/builder/ProcessBuilderImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/builder/ProcessBuilderImpl.java 2008-12-07 13:19:26 UTC (rev 3254)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/model/builder/ProcessBuilderImpl.java 2008-12-07 13:54:54 UTC (rev 3255)
@@ -66,7 +66,7 @@
protected ProcessEngine engine;
protected ProcessDefinitionImpl procDefImpl;
protected NodeImpl<?> nodeImpl;
-
+
private List<FlowSpec> flows = new ArrayList<FlowSpec>();
public ProcessBuilderImpl(ProcessEngine engine)
@@ -82,35 +82,35 @@
this.flows = procBuilder.flows;
}
- //@Override
+ // @Override
public ProcessBuilder addProcess(String name)
{
org.jbpm.graph.def.ProcessDefinition oldProcDef = org.jbpm.graph.def.ProcessDefinition.createNewProcessDefinition();
oldProcDef.setName(name);
-
+
procDefImpl = (ProcessDefinitionImpl)ProcessDefinitionImpl.newInstance(engine, oldProcDef, false);
return this;
}
- //@Override
+ // @Override
public ProcessDefinition getProcessDefinition()
{
initProcessDefinition();
return procDefImpl;
}
- //@Override
+ // @Override
public ProcessBuilder addStartEvent(String name)
{
if (name == null)
throw new InvalidProcessException("StartEvent name cannot be null");
-
+
nodeImpl = new StartEventImpl(engine, procDefImpl, new StartState(name));
procDefImpl.addNode(nodeImpl);
return this;
}
- //@Override
+ // @Override
public GatewayBuilder addGateway(String name, GatewayType type)
{
if (type == GatewayType.Exclusive)
@@ -125,13 +125,13 @@
return new GatewayBuilderImpl(this);
}
- //@Override
+ // @Override
public ProcessBuilder addTask(String name)
{
return addTask(name, TaskType.None);
}
- //@Override
+ // @Override
public ProcessBuilder addTask(String name, TaskType type)
{
if (type == TaskType.None)
@@ -151,7 +151,7 @@
return this;
}
- //@Override
+ // @Override
public ProcessBuilder addEndEvent(String name)
{
nodeImpl = new EndEventImpl(engine, procDefImpl, new EndState(name));
@@ -159,25 +159,25 @@
return this;
}
- //@Override
+ // @Override
public ProcessBuilder addSequenceFlow(String targetName)
{
return addSequenceFlow(targetName, null, null);
}
-
+
public ProcessBuilder addSequenceFlow(String targetName, ExpressionLanguage exprLang, String exprBody)
{
flows.add(new FlowSpec(nodeImpl.getName(), targetName, exprLang, exprBody));
return this;
}
-
+
class FlowSpec
{
String source;
String target;
ExpressionLanguage exprLang;
String exprBody;
-
+
public FlowSpec(String source, String target, ExpressionLanguage exprLang, String exprBody)
{
this.source = source;
@@ -195,48 +195,48 @@
NodeImpl<?> srcNode = (NodeImpl<?>)procDefImpl.getNode(flow.source);
if (srcNode == null)
throw new InvalidProcessException("Cannot obtain source node: " + flow.source);
-
+
NodeImpl<?> targetNode = (NodeImpl<?>)procDefImpl.getNode(flow.target);
if (targetNode == null)
throw new InvalidProcessException("Cannot obtain target node: " + flow.target);
-
+
Transition trans = new Transition(flow.target);
trans.setFrom(srcNode.getDelegate());
trans.setTo(targetNode.getDelegate());
-
+
SequenceFlowImpl seqFlow = new SequenceFlowImpl(trans, flow.exprLang, flow.exprBody);
srcNode.addSequenceFlow(seqFlow);
}
-
+
// Verify that there is a start event
List<StartEvent> startEvents = procDefImpl.getNodes(StartEvent.class);
if (startEvents.size() == 0)
throw new InvalidProcessException("Cannot obtain a start event");
-
+
// Verify that there is an end event
List<EndEvent> endEvents = procDefImpl.getNodes(EndEvent.class);
if (endEvents.size() == 0)
throw new InvalidProcessException("Cannot obtain an end event");
-
+
// Detect unreachable nodes
for (Node node : procDefImpl.getNodes())
{
NodeImpl<?> nodeImpl = (NodeImpl<?>)node;
org.jbpm.graph.def.Node delegate = nodeImpl.getDelegate();
Set<Transition> arriving = delegate.getArrivingTransitions();
-
+
NodeType nodeType = delegate.getNodeType();
if (nodeType != NodeType.StartState && arriving == null)
throw new InvalidProcessException("Unreachable node: " + node);
}
-
+
// Detect dead end nodes
for (Node node : procDefImpl.getNodes())
{
NodeImpl<?> nodeImpl = (NodeImpl<?>)node;
org.jbpm.graph.def.Node delegate = nodeImpl.getDelegate();
List<Transition> leaving = delegate.getLeavingTransitions();
-
+
NodeType nodeType = delegate.getNodeType();
if (nodeType != NodeType.EndState && leaving == null)
throw new InvalidProcessException("Dead end node: " + node);
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/runtime/InvocationProxy.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/runtime/InvocationProxy.java 2008-12-07 13:19:26 UTC (rev 3254)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/runtime/InvocationProxy.java 2008-12-07 13:54:54 UTC (rev 3255)
@@ -28,11 +28,12 @@
import java.util.Arrays;
import java.util.List;
-import org.jboss.bpm.api.model.AbstractElement;
import org.jboss.bpm.api.runtime.ExecutionContext;
import org.jboss.bpm.api.service.ExecutionContextService;
import org.jboss.bpm.api.service.ProcessEngine;
-import org.jbpm.integration.spec.model.AbstractElementImpl;
+import org.jboss.bpm.api.service.ProcessEngineSupport;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* Decorates management invocations with common system aspects.
@@ -42,13 +43,16 @@
*/
public class InvocationProxy implements InvocationProxySupport, InvocationHandler
{
+ // provide logging
+ private static final Logger log = LoggerFactory.getLogger(InvocationProxy.class);
+
private static List<Method> proxyMethods = Arrays.asList(InvocationProxySupport.class.getMethods());
-
- private AbstractElementImpl<?> abstractElement;
+
+ private ProcessEngineSupport obj;
private ProcessEngine engine;
-
+
@SuppressWarnings("unchecked")
- public static <T> T newInstance(AbstractElementImpl<?> obj, Class<T> interf)
+ public static <T> T newInstance(ProcessEngineSupport obj, Class<T> interf)
{
Class[] interfaces = new Class[] { interf, InvocationProxySupport.class };
ClassLoader classLoader = obj.getClass().getClassLoader();
@@ -66,7 +70,7 @@
else if (implObj instanceof InvocationProxySupport)
{
InvocationProxySupport proxy = (InvocationProxySupport)implObj;
- underlyingImpl = (T)proxy.getAbstractElement();
+ underlyingImpl = (T)proxy.getUnderlying();
}
else
{
@@ -74,39 +78,53 @@
}
return underlyingImpl;
}
-
- private InvocationProxy(AbstractElementImpl<?> obj)
+
+ private InvocationProxy(ProcessEngineSupport obj)
{
this.engine = obj.getProcessEngine();
- this.abstractElement = obj;
+ this.obj = obj;
}
- public AbstractElement getAbstractElement()
+ public ProcessEngineSupport getUnderlying()
{
- return abstractElement;
+ return obj;
}
public Object invoke(Object proxy, Method m, Object[] args) throws Throwable
{
- if (proxyMethods.contains(m) && "getAbstractElement".equals(m.getName()))
+ if (proxyMethods.contains(m))
{
- return getAbstractElement();
+ return m.invoke(this, args);
}
else
{
+ Throwable targetException = null;
+
ExecutionContextService ctxService = engine.getService(ExecutionContextService.class);
ExecutionContext bpmContext = ctxService.getExecutionContext(true);
try
{
- return m.invoke(abstractElement, args);
+ return m.invoke(obj, args);
}
catch (InvocationTargetException ex)
{
- throw ex.getTargetException();
+ targetException = ex.getTargetException();
+ throw targetException;
}
finally
{
- bpmContext.close();
+ try
+ {
+ bpmContext.close();
+ }
+ catch (Throwable th)
+ {
+ if (targetException == null)
+ throw th;
+
+ log.error("Cannot close the execution context", th);
+ throw targetException;
+ }
}
}
}
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/runtime/InvocationProxySupport.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/runtime/InvocationProxySupport.java 2008-12-07 13:19:26 UTC (rev 3254)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/runtime/InvocationProxySupport.java 2008-12-07 13:54:54 UTC (rev 3255)
@@ -21,7 +21,7 @@
*/
package org.jbpm.integration.spec.runtime;
-import org.jboss.bpm.api.model.AbstractElement;
+import org.jboss.bpm.api.service.ProcessEngineSupport;
/**
* Implemented by the proxy to give access to the underlying element.
@@ -31,5 +31,5 @@
*/
public interface InvocationProxySupport
{
- AbstractElement getAbstractElement();
+ ProcessEngineSupport getUnderlying();
}
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/runtime/NodeExecuteInterceptor.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/runtime/NodeExecuteInterceptor.java 2008-12-07 13:19:26 UTC (rev 3254)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/runtime/NodeExecuteInterceptor.java 2008-12-07 13:54:54 UTC (rev 3255)
@@ -23,16 +23,15 @@
//$Id$
-
/**
- * An interceptor that invokes the Node.execute
+ * An interceptor that invokes the Node.execute
*
* @author thomas.diesler at jboss.com
* @since 07-Oct-2008
*/
public class NodeExecuteInterceptor implements NodeInterceptor
{
- //@Override
+ // @Override
public void execute(RuntimeContext rtContext)
{
rtContext.getToken();
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/runtime/NodeInterceptor.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/runtime/NodeInterceptor.java 2008-12-07 13:19:26 UTC (rev 3254)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/runtime/NodeInterceptor.java 2008-12-07 13:54:54 UTC (rev 3255)
@@ -31,5 +31,5 @@
*/
public interface NodeInterceptor
{
- void execute (RuntimeContext rtContext);
+ void execute(RuntimeContext rtContext);
}
\ No newline at end of file
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/runtime/TokenAttachmentDelegate.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/runtime/TokenAttachmentDelegate.java 2008-12-07 13:19:26 UTC (rev 3254)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/runtime/TokenAttachmentDelegate.java 2008-12-07 13:54:54 UTC (rev 3255)
@@ -40,7 +40,7 @@
{
private ContextInstance context;
private TokenImpl token;
-
+
public TokenAttachmentDelegate(TokenImpl token, ContextInstance context)
{
this.token = token;
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/runtime/TokenImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/runtime/TokenImpl.java 2008-12-07 13:19:26 UTC (rev 3254)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/runtime/TokenImpl.java 2008-12-07 13:54:54 UTC (rev 3255)
@@ -98,13 +98,11 @@
return ProcessInstanceImpl.newInstance(getProcessEngine(), getDelegate().getProcessInstance(), true);
}
- // @Override
public Attachments getAttachments()
{
return att;
}
- // @Override
public TokenStatus getTokenStatus()
{
TokenStatus status = TokenStatus.Suspended;
@@ -115,7 +113,6 @@
return status;
}
- // @Override
public Set<Token> getChildTokens()
{
Set<Token> childTokens = new HashSet<Token>();
@@ -134,20 +131,17 @@
return childTokens;
}
- // @Override
public Node getNode()
{
String nodeName = getDelegate().getNode().getNameExt();
return getProcess().getNode(nodeName);
}
- // @Override
public SequenceFlow getLastFlow()
{
return lastFlow;
}
- // @Override
public Token getParentToken()
{
Token token = null;
@@ -158,7 +152,6 @@
return token;
}
- // @Override
public Token getRootToken()
{
org.jbpm.graph.exe.Token root = getDelegate();
@@ -169,13 +162,11 @@
return token;
}
- // @Override
public void signal()
{
signalInternal(null);
}
- // @Override
public void signal(String name)
{
signalInternal(name);
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/DeploymentServiceImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/DeploymentServiceImpl.java 2008-12-07 13:19:26 UTC (rev 3254)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/DeploymentServiceImpl.java 2008-12-07 13:54:54 UTC (rev 3255)
@@ -49,7 +49,7 @@
// Provide logging
final Logger log = LoggerFactory.getLogger(DeploymentServiceImpl.class);
- //@Override
+ // @Override
public void setProcessEngine(ProcessEngine engine)
{
super.setProcessEngine(engine);
@@ -78,14 +78,14 @@
try
{
String pdXML = dep.getProcessDefinitionXML();
-
+
// Parse and register the ProcessDefinition
ProcessDefinitionService pdService = getProcessEngine().getService(ProcessDefinitionService.class);
ProcessDefinition procDef = pdService.parseProcessDefinition(pdXML);
procDef = pdService.registerProcessDefinition(procDef);
-
+
dep.addAttachment(ObjectName.class, "procDefKey", procDef.getKey());
-
+
return procDef;
}
catch (IOException ex)
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/DialectHandlerServiceImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/DialectHandlerServiceImpl.java 2008-12-07 13:19:26 UTC (rev 3254)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/DialectHandlerServiceImpl.java 2008-12-07 13:54:54 UTC (rev 3255)
@@ -38,7 +38,7 @@
*/
public class DialectHandlerServiceImpl extends AbstractDialectHandlerService implements MutableService
{
- //@Override
+ // @Override
public void setProcessEngine(ProcessEngine engine)
{
super.setProcessEngine(engine);
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/ExecutionContextServiceImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/ExecutionContextServiceImpl.java 2008-12-07 13:19:26 UTC (rev 3254)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/ExecutionContextServiceImpl.java 2008-12-07 13:54:54 UTC (rev 3255)
@@ -62,13 +62,13 @@
public ExecutionContext getExecutionContext(boolean create)
{
ExecutionContextImpl currContext = contextAssociation.get();
-
+
if (currContext == null && create == true)
currContext = (ExecutionContextImpl)createExecutionContext();
-
+
if (currContext != null)
currContext.clientCount++;
-
+
return currContext;
}
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/ExecutionServiceImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/ExecutionServiceImpl.java 2008-12-07 13:19:26 UTC (rev 3254)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/ExecutionServiceImpl.java 2008-12-07 13:54:54 UTC (rev 3255)
@@ -47,7 +47,6 @@
// Provide logging
final Logger log = LoggerFactory.getLogger(ExecutionServiceImpl.class);
- // @Override
public void setProcessEngine(ProcessEngine engine)
{
super.setProcessEngine(engine);
@@ -73,7 +72,7 @@
public Token getToken(ObjectName tokenID)
{
Token token = null;
-
+
// [TODO] is there a better way than iterating over all processes and tokens?
ProcessInstanceService procService = getProcessEngine().getService(ProcessInstanceService.class);
for (ObjectName procID : procService.getInstance())
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/IdentityServiceImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/IdentityServiceImpl.java 2008-12-07 13:19:26 UTC (rev 3254)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/IdentityServiceImpl.java 2008-12-07 13:54:54 UTC (rev 3255)
@@ -49,16 +49,16 @@
// Provide logging
final Logger log = LoggerFactory.getLogger(IdentityServiceImpl.class);
- // @Override
public void setProcessEngine(ProcessEngine engine)
{
super.setProcessEngine(engine);
}
+ @SuppressWarnings("unchecked")
public List<String> getActors()
{
List<String> actors = new ArrayList<String>();
-
+
IdentitySession identSession = getIdentitySession();
try
{
@@ -72,14 +72,15 @@
{
identSession.close();
}
-
+
return actors;
}
+ @SuppressWarnings("unchecked")
public List<String> getActorsByGroup(String group)
{
List<String> actors = new ArrayList<String>();
-
+
IdentitySession identSession = getIdentitySession();
try
{
@@ -97,7 +98,7 @@
{
identSession.close();
}
-
+
return actors;
}
@@ -106,10 +107,11 @@
throw new NotImplementedException();
}
+ @SuppressWarnings("unchecked")
public List<String> getGroupsByActor(String actor)
{
List<String> groups = new ArrayList<String>();
-
+
IdentitySession identSession = getIdentitySession();
try
{
@@ -127,7 +129,7 @@
{
identSession.close();
}
-
+
return groups;
}
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/NoopPersistenceServiceImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/NoopPersistenceServiceImpl.java 2008-12-07 13:19:26 UTC (rev 3254)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/NoopPersistenceServiceImpl.java 2008-12-07 13:54:54 UTC (rev 3255)
@@ -53,85 +53,85 @@
private Map<ObjectName, ProcessInstance> procs = new HashMap<ObjectName, ProcessInstance>();
private Map<ObjectName, Node> nodes = new HashMap<ObjectName, Node>();
- //@Override
+ // @Override
public void setProcessEngine(ProcessEngine engine)
{
super.setProcessEngine(engine);
}
-
- //@Override
+
+ // @Override
public Session createSession()
{
return null;
}
- //@Override
+ // @Override
public ObjectName saveProcessDefinition(ProcessDefinition procDef)
{
procDefs.put(procDef.getKey(), procDef);
return procDef.getKey();
}
- //@Override
+ // @Override
public ProcessDefinition loadProcessDefinition(ObjectName procDefID)
{
ProcessDefinition procDef = procDefs.get(procDefID);
if (procDef == null)
throw new ProcessNotFoundException("Cannot find process: " + procDefID);
-
+
return procDef;
}
- //@Override
+ // @Override
public void deleteProcessDefinition(ProcessDefinition procDef)
{
procDefs.remove(procDef.getKey());
}
- //@Override
+ // @Override
public ObjectName saveProcess(ProcessInstance proc)
{
procs.put(proc.getKey(), proc);
-
+
for (Node node : proc.getNodes())
nodes.put(node.getKey(), node);
-
+
return proc.getKey();
}
- //@Override
+ // @Override
public ProcessInstance loadProcess(ObjectName procID)
{
ProcessInstance proc = procs.get(procID);
if (proc == null)
throw new ProcessNotFoundException("Cannot find process: " + procID);
-
+
return proc;
}
- //@Override
+ // @Override
public void deleteProcess(ProcessInstance proc)
{
procs.remove(proc.getKey());
-
+
for (Node node : proc.getNodes())
nodes.remove(node.getKey());
}
- //@Override
+ // @Override
public ObjectName saveNode(Session session, Node node)
{
return node.getKey();
}
- //@Override
+ // @Override
@SuppressWarnings("unchecked")
public <T extends Node> T loadNode(Session session, Class<T> nodeImpl, ObjectName nodeID)
{
T node = (T)nodes.get(nodeID);
if (node == null)
throw new ProcessNotFoundException("Cannot find node: " + nodeID);
-
+
return node;
}
}
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/ProcessBuilderServiceImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/ProcessBuilderServiceImpl.java 2008-12-07 13:19:26 UTC (rev 3254)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/ProcessBuilderServiceImpl.java 2008-12-07 13:54:54 UTC (rev 3255)
@@ -28,6 +28,7 @@
import org.jboss.bpm.api.service.ProcessBuilderService;
import org.jboss.bpm.api.service.ProcessEngine;
import org.jbpm.integration.spec.model.builder.ProcessBuilderImpl;
+
/**
* The ProcessBuilder can be used to build a {@link ProcessInstance} dynamically.
*
@@ -36,15 +37,15 @@
*/
public class ProcessBuilderServiceImpl extends ProcessBuilderService implements MutableService
{
- //@Override
+ // @Override
public void setProcessEngine(ProcessEngine engine)
{
super.setProcessEngine(engine);
}
-
- //@Override
+
+ // @Override
public ProcessBuilder getProcessBuilder()
{
- return new ProcessBuilderImpl(getProcessEngine());
+ return new ProcessBuilderImpl(getProcessEngine());
}
}
\ No newline at end of file
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/ProcessDefinitionServiceImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/ProcessDefinitionServiceImpl.java 2008-12-07 13:19:26 UTC (rev 3254)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/ProcessDefinitionServiceImpl.java 2008-12-07 13:54:54 UTC (rev 3255)
@@ -53,7 +53,7 @@
{
// Provide logging
final static Logger log = LoggerFactory.getLogger(ProcessDefinitionServiceImpl.class);
-
+
@Override
public void setProcessEngine(ProcessEngine engine)
{
@@ -67,14 +67,14 @@
try
{
ProcessDefinition procDef = null;
-
+
GraphSession graphSession = bpmContext.getAttachment(JbpmContext.class).getGraphSession();
org.jbpm.graph.def.ProcessDefinition oldProcDef = graphSession.getProcessDefinition(adaptKey(procDefID));
if (oldProcDef != null)
{
procDef = ProcessDefinitionImpl.newInstance(getProcessEngine(), oldProcDef, true);
}
-
+
return procDef;
}
finally
@@ -90,14 +90,14 @@
try
{
Set<ObjectName> procDefs = new HashSet<ObjectName>();
-
+
GraphSession graphSession = bpmContext.getAttachment(JbpmContext.class).getGraphSession();
for (Object item : graphSession.findAllProcessDefinitions())
{
org.jbpm.graph.def.ProcessDefinition oldProcDef = (org.jbpm.graph.def.ProcessDefinition)item;
procDefs.add(ProcessDefinitionImpl.getKey(oldProcDef));
}
-
+
return Collections.unmodifiableSet(procDefs);
}
finally
@@ -113,14 +113,14 @@
try
{
log.debug("registerProcessDefinition: " + procDef);
-
+
if (getProcessDefinition(procDef.getKey()) != null)
throw new IllegalStateException("Process definition already registered: " + procDef);
-
+
JbpmContext jbpmContext = bpmContext.getAttachment(JbpmContext.class);
ProcessDefinitionImpl procDefImpl = InvocationProxy.getUnderlying(procDef, ProcessDefinitionImpl.class);
jbpmContext.deployProcessDefinition(procDefImpl.getDelegate());
-
+
procDef = InvocationProxy.newInstance(procDefImpl, ProcessDefinition.class);
return procDef;
}
@@ -133,7 +133,7 @@
public boolean unregisterProcessDefinition(ObjectName procDefID)
{
boolean removed = false;
-
+
ExecutionContextService ctxService = getProcessEngine().getService(ExecutionContextService.class);
ExecutionContext bpmContext = ctxService.getExecutionContext(true);
try
@@ -142,12 +142,12 @@
if (procDef != null)
{
log.debug("unregisterProcessDefinition: " + procDef);
-
+
// Unregister the associated process instances
ProcessInstanceService procService = getProcessEngine().getService(ProcessInstanceService.class);
for (ObjectName procID : procService.getInstance(procDefID, null))
procService.unregisterInstance(procID);
-
+
JbpmContext jbpmContext = bpmContext.getAttachment(JbpmContext.class);
jbpmContext.getGraphSession().deleteProcessDefinition(adaptKey(procDefID));
removed = true;
@@ -157,10 +157,10 @@
{
bpmContext.close();
}
-
+
return removed;
}
-
+
private Long adaptKey(ObjectName key)
{
String id = key.getKeyProperty("id");
Copied: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/ProcessInstanceServiceImpl.java (from rev 3248, jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/ProcessServiceImpl.java)
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/ProcessInstanceServiceImpl.java (rev 0)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/ProcessInstanceServiceImpl.java 2008-12-07 13:54:54 UTC (rev 3255)
@@ -0,0 +1,275 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jbpm.integration.spec.service;
+
+// $Id$
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import javax.management.ObjectName;
+
+import org.jboss.bpm.api.model.ProcessInstance;
+import org.jboss.bpm.api.model.ProcessDefinition;
+import org.jboss.bpm.api.model.ProcessInstance.ProcessStatus;
+import org.jboss.bpm.api.runtime.ExecutionContext;
+import org.jboss.bpm.api.service.ExecutionContextService;
+import org.jboss.bpm.api.service.ProcessDefinitionService;
+import org.jboss.bpm.api.service.ProcessEngine;
+import org.jboss.bpm.api.service.ProcessInstanceService;
+import org.jboss.bpm.api.service.internal.AbstractProcessService;
+import org.jbpm.JbpmContext;
+import org.jbpm.db.GraphSession;
+import org.jbpm.integration.spec.model.ProcessDefinitionImpl;
+import org.jbpm.integration.spec.model.ProcessInstanceImpl;
+import org.jbpm.integration.spec.runtime.InvocationProxy;
+import org.jbpm.integration.spec.runtime.NodeInterceptor;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * The ProcessService is the entry point to create, find and otherwise manage processes.
+ *
+ * @author thomas.diesler at jboss.com
+ * @since 18-Jun-2008
+ */
+public class ProcessInstanceServiceImpl extends AbstractProcessService implements ProcessInstanceService, MutableService
+{
+ // Provide logging
+ final static Logger log = LoggerFactory.getLogger(ProcessInstanceServiceImpl.class);
+
+ private List<NodeInterceptor> nodeInterceptors = new ArrayList<NodeInterceptor>();
+
+ public void setProcessEngine(ProcessEngine engine)
+ {
+ super.setProcessEngine(engine);
+ }
+
+ public void setInterceptors(List<String> itorClassNames)
+ {
+ for (String itorClass : itorClassNames)
+ {
+ NodeInterceptor itor = loadNodeInterceptor(itorClass);
+ nodeInterceptors.add(itor);
+ }
+ }
+
+ public List<NodeInterceptor> getNodeInterceptors()
+ {
+ return Collections.unmodifiableList(nodeInterceptors);
+ }
+
+ /**
+ * Get a Process for a given id
+ */
+ public ProcessInstance getInstance(ObjectName procID)
+ {
+ ExecutionContextService ctxService = getProcessEngine().getService(ExecutionContextService.class);
+ ExecutionContext bpmContext = ctxService.getExecutionContext(true);
+ try
+ {
+ ProcessInstance proc = null;
+
+ GraphSession graphSession = bpmContext.getAttachment(JbpmContext.class).getGraphSession();
+ org.jbpm.graph.exe.ProcessInstance oldProc = graphSession.getProcessInstance(adaptKey(procID));
+ if (oldProc != null)
+ {
+ proc = ProcessInstanceImpl.newInstance(getProcessEngine(), oldProc, true);
+ }
+
+ return proc;
+ }
+ finally
+ {
+ bpmContext.close();
+ }
+ }
+
+ /**
+ * Get the set of registered Processes
+ */
+ public Set<ObjectName> getInstance()
+ {
+ Set<ObjectName> procs = new HashSet<ObjectName>();
+
+ ExecutionContextService ctxService = getProcessEngine().getService(ExecutionContextService.class);
+ ExecutionContext bpmContext = ctxService.getExecutionContext(true);
+ try
+ {
+ ProcessDefinitionService pdService = getProcessEngine().getService(ProcessDefinitionService.class);
+ for (ObjectName procDefID : pdService.getProcessDefinitions())
+ {
+ Long id = adaptKey(procDefID);
+ GraphSession graphSession = bpmContext.getAttachment(JbpmContext.class).getGraphSession();
+ for (Object item : graphSession.findProcessInstances(id))
+ {
+ org.jbpm.graph.exe.ProcessInstance oldProc = (org.jbpm.graph.exe.ProcessInstance)item;
+ procs.add(ProcessInstanceImpl.getKey(oldProc));
+ }
+ }
+ }
+ finally
+ {
+ bpmContext.close();
+ }
+ return Collections.unmodifiableSet(procs);
+ }
+
+ /**
+ * Find the set of Processes for a given name
+ *
+ * @param procDefID The process name
+ * @param status The optional process status
+ * @return An empty set if the process cannot be found
+ */
+ public Set<ObjectName> getInstance(ObjectName procDefID, ProcessStatus status)
+ {
+ Set<ObjectName> procs = new HashSet<ObjectName>();
+
+ ExecutionContextService ctxService = getProcessEngine().getService(ExecutionContextService.class);
+ ExecutionContext bpmContext = ctxService.getExecutionContext(true);
+ try
+ {
+ Long id = adaptKey(procDefID);
+ GraphSession graphSession = bpmContext.getAttachment(JbpmContext.class).getGraphSession();
+ for (Object item : graphSession.findProcessInstances(id))
+ {
+ org.jbpm.graph.exe.ProcessInstance oldProc = (org.jbpm.graph.exe.ProcessInstance)item;
+ ProcessInstance auxProc = ProcessInstanceImpl.newInstance(getProcessEngine(), oldProc, true);
+ if (status == null || auxProc.getProcessStatus() == status)
+ procs.add(auxProc.getKey());
+ }
+ }
+ finally
+ {
+ bpmContext.close();
+ }
+ return Collections.unmodifiableSet(procs);
+ }
+
+ /**
+ * Register a Process.
+ */
+ public ProcessInstance registerInstance(ProcessInstance proc)
+ {
+ log.debug("registerProcess: " + proc);
+
+ ExecutionContextService ctxService = getProcessEngine().getService(ExecutionContextService.class);
+ ExecutionContext bpmContext = ctxService.getExecutionContext(true);
+ try
+ {
+ if (getInstance(proc.getKey()) != null)
+ throw new IllegalStateException("Process already registered: " + proc);
+
+ ProcessStatus procStatus = proc.getProcessStatus();
+ if (procStatus != ProcessStatus.None)
+ throw new IllegalStateException("Cannot register process in state: " + procStatus);
+
+ ProcessDefinition procDef = proc.getProcessDefinition();
+
+ // Register the process definition if needed
+ ProcessDefinitionService procDefService = getProcessEngine().getService(ProcessDefinitionService.class);
+ if (procDefService.getProcessDefinition(procDef.getKey()) == null)
+ procDefService.registerProcessDefinition(procDef);
+
+ ProcessInstanceImpl procImpl = InvocationProxy.getUnderlying(proc, ProcessInstanceImpl.class);
+ org.jbpm.graph.exe.ProcessInstance oldProcInst = procImpl.getDelegate();
+
+ // Make sure the process definition from this session is associated with the process instance
+ procDef = procDefService.getProcessDefinition(procDef.getKey());
+ ProcessDefinitionImpl procDefImpl = InvocationProxy.getUnderlying(procDef, ProcessDefinitionImpl.class);
+ oldProcInst.setProcessDefinition(procDefImpl.getDelegate());
+
+ // Save the ProcessInstance
+ JbpmContext jbpmContext = bpmContext.getAttachment(JbpmContext.class);
+ jbpmContext.save(oldProcInst);
+
+ procImpl.setProcessStatus(ProcessStatus.Ready);
+ proc = InvocationProxy.newInstance(procImpl, ProcessInstance.class);
+ return proc;
+ }
+ finally
+ {
+ bpmContext.close();
+ }
+ }
+
+ /**
+ * Unregister a Process.
+ */
+ public boolean unregisterInstance(ObjectName procID)
+ {
+ boolean removed = false;
+
+ ExecutionContextService ctxService = getProcessEngine().getService(ExecutionContextService.class);
+ ExecutionContext bpmContext = ctxService.getExecutionContext(true);
+ try
+ {
+ ProcessInstance proc = getInstance(procID);
+ if (proc != null)
+ {
+ log.debug("unregisterProcess: " + proc);
+
+ ProcessInstanceImpl procImpl = InvocationProxy.getUnderlying(proc, ProcessInstanceImpl.class);
+ GraphSession graphSession = bpmContext.getAttachment(JbpmContext.class).getGraphSession();
+ graphSession.deleteProcessInstance(procImpl.getDelegate());
+ removed = true;
+ }
+ }
+ finally
+ {
+ bpmContext.close();
+ }
+ return removed;
+
+ }
+
+ private NodeInterceptor loadNodeInterceptor(String className)
+ {
+ NodeInterceptor itor = null;
+ if (className != null)
+ {
+ try
+ {
+ ClassLoader ctxLoader = Thread.currentThread().getContextClassLoader();
+ itor = (NodeInterceptor)ctxLoader.loadClass(className).newInstance();
+ }
+ catch (Exception ex)
+ {
+ log.error("Cannot load interceptor: " + className, ex);
+ }
+ }
+ return itor;
+ }
+
+ private Long adaptKey(ObjectName key)
+ {
+ String id = key.getKeyProperty("id");
+ if (id == null)
+ throw new IllegalStateException("Cannot obtain id property from: " + key);
+
+ return new Long(id);
+ }
+}
\ No newline at end of file
Deleted: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/ProcessServiceImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/ProcessServiceImpl.java 2008-12-07 13:19:26 UTC (rev 3254)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/ProcessServiceImpl.java 2008-12-07 13:54:54 UTC (rev 3255)
@@ -1,279 +0,0 @@
-/*
- * JBoss, Home of Professional Open Source
- * Copyright 2005, JBoss Inc., and individual contributors as indicated
- * by the @authors tag. See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This is free software; you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation; either version 2.1 of
- * the License, or (at your option) any later version.
- *
- * This software is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this software; if not, write to the Free
- * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
- * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
- */
-package org.jbpm.integration.spec.service;
-
-// $Id$
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Set;
-
-import javax.management.ObjectName;
-
-import org.jboss.bpm.api.model.ProcessInstance;
-import org.jboss.bpm.api.model.ProcessDefinition;
-import org.jboss.bpm.api.model.ProcessInstance.ProcessStatus;
-import org.jboss.bpm.api.runtime.ExecutionContext;
-import org.jboss.bpm.api.service.ExecutionContextService;
-import org.jboss.bpm.api.service.ProcessDefinitionService;
-import org.jboss.bpm.api.service.ProcessEngine;
-import org.jboss.bpm.api.service.ProcessInstanceService;
-import org.jboss.bpm.api.service.internal.AbstractProcessService;
-import org.jbpm.JbpmContext;
-import org.jbpm.db.GraphSession;
-import org.jbpm.integration.spec.model.ProcessDefinitionImpl;
-import org.jbpm.integration.spec.model.ProcessInstanceImpl;
-import org.jbpm.integration.spec.runtime.InvocationProxy;
-import org.jbpm.integration.spec.runtime.NodeInterceptor;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-/**
- * The ProcessService is the entry point to create, find and otherwise manage processes.
- *
- * @author thomas.diesler at jboss.com
- * @since 18-Jun-2008
- */
-public class ProcessServiceImpl extends AbstractProcessService implements ProcessInstanceService, MutableService
-{
- // Provide logging
- final static Logger log = LoggerFactory.getLogger(ProcessServiceImpl.class);
-
- private List<NodeInterceptor> nodeInterceptors = new ArrayList<NodeInterceptor>();
-
- // @Override
- public void setProcessEngine(ProcessEngine engine)
- {
- super.setProcessEngine(engine);
- }
-
- public void setInterceptors(List<String> itorClassNames)
- {
- for (String itorClass : itorClassNames)
- {
- NodeInterceptor itor = loadNodeInterceptor(itorClass);
- nodeInterceptors.add(itor);
- }
- }
-
- public List<NodeInterceptor> getNodeInterceptors()
- {
- return Collections.unmodifiableList(nodeInterceptors);
- }
-
- /**
- * Get a Process for a given id
- */
- // @Override
- public ProcessInstance getInstance(ObjectName procID)
- {
- ExecutionContextService ctxService = getProcessEngine().getService(ExecutionContextService.class);
- ExecutionContext bpmContext = ctxService.getExecutionContext(true);
- try
- {
- ProcessInstance proc = null;
-
- GraphSession graphSession = bpmContext.getAttachment(JbpmContext.class).getGraphSession();
- org.jbpm.graph.exe.ProcessInstance oldProc = graphSession.getProcessInstance(adaptKey(procID));
- if (oldProc != null)
- {
- proc = ProcessInstanceImpl.newInstance(getProcessEngine(), oldProc, true);
- }
-
- return proc;
- }
- finally
- {
- bpmContext.close();
- }
- }
-
- /**
- * Get the set of registered Processes
- */
- // @Override
- public Set<ObjectName> getInstance()
- {
- Set<ObjectName> procs = new HashSet<ObjectName>();
-
- ExecutionContextService ctxService = getProcessEngine().getService(ExecutionContextService.class);
- ExecutionContext bpmContext = ctxService.getExecutionContext(true);
- try
- {
- ProcessDefinitionService pdService = getProcessEngine().getService(ProcessDefinitionService.class);
- for (ObjectName procDefID : pdService.getProcessDefinitions())
- {
- Long id = adaptKey(procDefID);
- GraphSession graphSession = bpmContext.getAttachment(JbpmContext.class).getGraphSession();
- for (Object item : graphSession.findProcessInstances(id))
- {
- org.jbpm.graph.exe.ProcessInstance oldProc = (org.jbpm.graph.exe.ProcessInstance)item;
- procs.add(ProcessInstanceImpl.getKey(oldProc));
- }
- }
- }
- finally
- {
- bpmContext.close();
- }
- return Collections.unmodifiableSet(procs);
- }
-
- /**
- * Find the set of Processes for a given name
- *
- * @param procDefID The process name
- * @param status The optional process status
- * @return An empty set if the process cannot be found
- */
- // @Override
- public Set<ObjectName> getInstance(ObjectName procDefID, ProcessStatus status)
- {
- Set<ObjectName> procs = new HashSet<ObjectName>();
-
- ExecutionContextService ctxService = getProcessEngine().getService(ExecutionContextService.class);
- ExecutionContext bpmContext = ctxService.getExecutionContext(true);
- try
- {
- Long id = adaptKey(procDefID);
- GraphSession graphSession = bpmContext.getAttachment(JbpmContext.class).getGraphSession();
- for (Object item : graphSession.findProcessInstances(id))
- {
- org.jbpm.graph.exe.ProcessInstance oldProc = (org.jbpm.graph.exe.ProcessInstance)item;
- ProcessInstance auxProc = ProcessInstanceImpl.newInstance(getProcessEngine(), oldProc, true);
- if (status == null || auxProc.getProcessStatus() == status)
- procs.add(auxProc.getKey());
- }
- }
- finally
- {
- bpmContext.close();
- }
- return Collections.unmodifiableSet(procs);
- }
-
- /**
- * Register a Process.
- */
- public ProcessInstance registerInstance(ProcessInstance proc)
- {
- log.debug("registerProcess: " + proc);
-
- ExecutionContextService ctxService = getProcessEngine().getService(ExecutionContextService.class);
- ExecutionContext bpmContext = ctxService.getExecutionContext(true);
- try
- {
- if (getInstance(proc.getKey()) != null)
- throw new IllegalStateException("Process already registered: " + proc);
-
- ProcessStatus procStatus = proc.getProcessStatus();
- if (procStatus != ProcessStatus.None)
- throw new IllegalStateException("Cannot register process in state: " + procStatus);
-
- ProcessDefinition procDef = proc.getProcessDefinition();
-
- // Register the process definition if needed
- ProcessDefinitionService procDefService = getProcessEngine().getService(ProcessDefinitionService.class);
- if (procDefService.getProcessDefinition(procDef.getKey()) == null)
- procDefService.registerProcessDefinition(procDef);
-
- ProcessInstanceImpl procImpl = InvocationProxy.getUnderlying(proc, ProcessInstanceImpl.class);
- org.jbpm.graph.exe.ProcessInstance oldProcInst = procImpl.getDelegate();
-
- // Make sure the process definition from this session is associated with the process instance
- procDef = procDefService.getProcessDefinition(procDef.getKey());
- ProcessDefinitionImpl procDefImpl = InvocationProxy.getUnderlying(procDef, ProcessDefinitionImpl.class);
- oldProcInst.setProcessDefinition(procDefImpl.getDelegate());
-
- // Save the ProcessInstance
- JbpmContext jbpmContext = bpmContext.getAttachment(JbpmContext.class);
- jbpmContext.save(oldProcInst);
-
- procImpl.setProcessStatus(ProcessStatus.Ready);
- proc = InvocationProxy.newInstance(procImpl, ProcessInstance.class);
- return proc;
- }
- finally
- {
- bpmContext.close();
- }
- }
-
- /**
- * Unregister a Process.
- */
- public boolean unregisterInstance(ObjectName procID)
- {
- boolean removed = false;
-
- ExecutionContextService ctxService = getProcessEngine().getService(ExecutionContextService.class);
- ExecutionContext bpmContext = ctxService.getExecutionContext(true);
- try
- {
- ProcessInstance proc = getInstance(procID);
- if (proc != null)
- {
- log.debug("unregisterProcess: " + proc);
-
- ProcessInstanceImpl procImpl = InvocationProxy.getUnderlying(proc, ProcessInstanceImpl.class);
- GraphSession graphSession = bpmContext.getAttachment(JbpmContext.class).getGraphSession();
- graphSession.deleteProcessInstance(procImpl.getDelegate());
- removed = true;
- }
- }
- finally
- {
- bpmContext.close();
- }
- return removed;
-
- }
-
- private NodeInterceptor loadNodeInterceptor(String className)
- {
- NodeInterceptor itor = null;
- if (className != null)
- {
- try
- {
- ClassLoader ctxLoader = Thread.currentThread().getContextClassLoader();
- itor = (NodeInterceptor)ctxLoader.loadClass(className).newInstance();
- }
- catch (Exception ex)
- {
- log.error("Cannot load interceptor: " + className, ex);
- }
- }
- return itor;
- }
-
- private Long adaptKey(ObjectName key)
- {
- String id = key.getKeyProperty("id");
- if (id == null)
- throw new IllegalStateException("Cannot obtain id property from: " + key);
-
- return new Long(id);
- }
-}
\ No newline at end of file
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/TaskServiceImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/TaskServiceImpl.java 2008-12-07 13:19:26 UTC (rev 3254)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/service/TaskServiceImpl.java 2008-12-07 13:54:54 UTC (rev 3255)
@@ -54,7 +54,6 @@
// Provide logging
final Logger log = LoggerFactory.getLogger(TaskServiceImpl.class);
- // @Override
public void setProcessEngine(ProcessEngine engine)
{
super.setProcessEngine(engine);
Modified: jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/task/TaskInstanceImpl.java
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/task/TaskInstanceImpl.java 2008-12-07 13:19:26 UTC (rev 3254)
+++ jbpm3/trunk/modules/integration/spec/src/main/java/org/jbpm/integration/spec/task/TaskInstanceImpl.java 2008-12-07 13:54:54 UTC (rev 3255)
@@ -46,7 +46,7 @@
* @author thomas.diesler at jboss.com
* @since 28-Nov-2008
*/
-public class TaskInstanceImpl extends AbstractElementImpl<org.jbpm.taskmgmt.exe.TaskInstance> implements TaskInstance
+public class TaskInstanceImpl extends AbstractElementImpl<org.jbpm.taskmgmt.exe.TaskInstance> implements TaskInstance
{
private static final long serialVersionUID = 1L;
@@ -54,16 +54,16 @@
final Logger log = LoggerFactory.getLogger(TaskInstanceImpl.class);
private ObjectName keyCache;
-
+
public static TaskInstance newInstance(ProcessEngine engine, org.jbpm.taskmgmt.exe.TaskInstance tmpTask)
{
return InvocationProxy.newInstance(new TaskInstanceImpl(engine, tmpTask), TaskInstance.class);
}
-
+
private TaskInstanceImpl(ProcessEngine engine, org.jbpm.taskmgmt.exe.TaskInstance tmpTask)
{
super(engine, tmpTask, org.jbpm.taskmgmt.exe.TaskInstance.class);
-
+
if (tmpTask.getId() > 0)
keyCache = getKey(tmpTask);
}
@@ -95,17 +95,17 @@
{
getDelegate().end(targetName);
}
-
+
public boolean hasEnded()
{
return getDelegate().hasEnded();
}
-
+
public boolean isCancelled()
{
return getDelegate().isCancelled();
}
-
+
public boolean isBlocking()
{
return getDelegate().isBlocking();
@@ -124,7 +124,7 @@
public ObjectName getCorrelationKey()
{
Token token = null;
-
+
if (getDelegate().getToken() != null)
{
long tokenID = getDelegate().getToken().getId();
@@ -139,10 +139,10 @@
}
}
}
-
+
if (token == null)
throw new IllegalStateException("Cannot obtain associated token");
-
+
return token.getKey();
}
Modified: jbpm3/trunk/modules/integration/spec/src/main/resources/jbpm-cfg-beans.xml
===================================================================
--- jbpm3/trunk/modules/integration/spec/src/main/resources/jbpm-cfg-beans.xml 2008-12-07 13:19:26 UTC (rev 3254)
+++ jbpm3/trunk/modules/integration/spec/src/main/resources/jbpm-cfg-beans.xml 2008-12-07 13:54:54 UTC (rev 3255)
@@ -30,7 +30,7 @@
<bean name="BPMPersistenceService" class="org.jbpm.integration.spec.service.NoopPersistenceServiceImpl" />
<!-- The ProcessService -->
- <bean name="BPMProcessService" class="org.jbpm.integration.spec.service.ProcessServiceImpl">
+ <bean name="BPMProcessService" class="org.jbpm.integration.spec.service.ProcessInstanceServiceImpl">
<property name="interceptors">
<list elementClass="java.lang.String">
<value>org.jbpm.integration.spec.runtime.NodeExecuteInterceptor</value>
More information about the jbpm-commits
mailing list