[jboss-svn-commits] JBL Code SVN: r21241 - in labs/jbossrules/trunk: drools-core/src/main/java/org/drools/workflow/core/node and 7 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sat Jul 26 20:52:09 EDT 2008
Author: KrisVerlaenen
Date: 2008-07-26 20:52:09 -0400 (Sat, 26 Jul 2008)
New Revision: 21241
Added:
labs/jbossrules/trunk/drools-process/drools-bpel/src/main/resources/META-INF/drools.packagebuilder.conf
labs/jbossrules/trunk/drools-process/drools-bpel/src/main/resources/META-INF/drools.rulebase.conf
Removed:
labs/jbossrules/trunk/drools-process/drools-bpel/src/main/java/org/drools/bpel/instance/BPELNodeInstanceFactoryRegistry.java
Modified:
labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/ProcessBuilder.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/node/CompositeNode.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/node/ForEachNode.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/impl/NodeInstanceImpl.java
labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/CompositeNodeInstance.java
labs/jbossrules/trunk/drools-process/drools-bpel/src/main/java/org/drools/bpel/compiler/BPELCompiler.java
labs/jbossrules/trunk/drools-process/drools-bpel/src/main/java/org/drools/bpel/core/BPELFlow.java
labs/jbossrules/trunk/drools-process/drools-bpel/src/main/java/org/drools/bpel/core/BPELPick.java
labs/jbossrules/trunk/drools-process/drools-bpel/src/main/java/org/drools/bpel/core/BPELProcess.java
labs/jbossrules/trunk/drools-process/drools-bpel/src/main/java/org/drools/bpel/core/BPELSwitch.java
labs/jbossrules/trunk/drools-process/drools-bpel/src/main/java/org/drools/bpel/core/BPELWhile.java
labs/jbossrules/trunk/drools-process/drools-bpel/src/main/java/org/drools/bpel/instance/BPELProcessInstance.java
labs/jbossrules/trunk/drools-process/drools-bpel/src/main/resources/META-INF/bpelNodeBuilderRegistry.conf
labs/jbossrules/trunk/drools-process/drools-bpel/src/main/resources/META-INF/bpelProcessNodeInstanceFactory.conf
labs/jbossrules/trunk/drools-process/drools-bpel/src/test/java/org/drools/bpel/test/BPELCompilerTest.java
Log:
JBRULES-1696: Extends WS-BPEL support
Modified: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/ProcessBuilder.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/ProcessBuilder.java 2008-07-26 20:08:55 UTC (rev 21240)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/ProcessBuilder.java 2008-07-27 00:52:09 UTC (rev 21241)
@@ -54,7 +54,7 @@
public class ProcessBuilder {
private PackageBuilder packageBuilder;
- private final List errors = new ArrayList();
+ private final List<DroolsError> errors = new ArrayList<DroolsError>();
private Map<String, ProcessValidator> processValidators = new HashMap<String, ProcessValidator>();;
public ProcessBuilder(PackageBuilder packageBuilder) {
@@ -62,7 +62,7 @@
this.processValidators.put(RuleFlowProcess.RULEFLOW_TYPE, RuleFlowProcessValidator.getInstance());
}
- public List getErrors() {
+ public List<DroolsError> getErrors() {
return errors;
}
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/node/CompositeNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/node/CompositeNode.java 2008-07-26 20:08:55 UTC (rev 21240)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/node/CompositeNode.java 2008-07-27 00:52:09 UTC (rev 21241)
@@ -328,7 +328,8 @@
this.inNodeId = outNode.getId();
this.inNode = outNode;
this.inType = outType;
- }
+ setMetaData("hidden", true);
+ }
public Node getInNode() {
if (inNode == null) {
@@ -369,6 +370,7 @@
this.outNodeId = outNode.getId();
this.outNode = outNode;
this.outType = outType;
+ setMetaData("hidden", true);
}
public Node getOutNode() {
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/node/ForEachNode.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/node/ForEachNode.java 2008-07-26 20:08:55 UTC (rev 21240)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/core/node/ForEachNode.java 2008-07-27 00:52:09 UTC (rev 21241)
@@ -46,6 +46,7 @@
// Split
ForEachSplitNode split = new ForEachSplitNode();
split.setName("ForEachSplit");
+ split.setMetaData("hidden", true);
super.addNode(split);
super.linkIncomingConnections(
Node.CONNECTION_DEFAULT_TYPE,
@@ -53,6 +54,7 @@
// Composite node
CompositeContextNode compositeNode = new CompositeContextNode();
compositeNode.setName("ForEachComposite");
+ compositeNode.setMetaData("hidden", true);
super.addNode(compositeNode);
VariableScope variableScope = new VariableScope();
compositeNode.setContext(VariableScope.VARIABLE_SCOPE, variableScope);
@@ -60,6 +62,7 @@
// Join
ForEachJoinNode join = new ForEachJoinNode();
join.setName("ForEachJoin");
+ join.setMetaData("hidden", true);
super.addNode(join);
super.linkOutgoingConnections(
new CompositeNode.NodeAndType(join, Node.CONNECTION_DEFAULT_TYPE),
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/impl/NodeInstanceImpl.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/impl/NodeInstanceImpl.java 2008-07-26 20:08:55 UTC (rev 21240)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/impl/NodeInstanceImpl.java 2008-07-27 00:52:09 UTC (rev 21241)
@@ -90,9 +90,17 @@
}
public final void trigger(NodeInstance from, String type) {
- ((EventSupport) getProcessInstance().getWorkingMemory()).getRuleFlowEventSupport().fireBeforeRuleFlowNodeTriggered(this, (InternalWorkingMemory) getProcessInstance().getWorkingMemory());
+ boolean hidden = false;
+ if (getNode().getMetaData("hidden") != null) {
+ hidden = true;
+ }
+ if (!hidden) {
+ ((EventSupport) getProcessInstance().getWorkingMemory()).getRuleFlowEventSupport().fireBeforeRuleFlowNodeTriggered(this, (InternalWorkingMemory) getProcessInstance().getWorkingMemory());
+ }
internalTrigger(from, type);
- ((EventSupport) getProcessInstance().getWorkingMemory()).getRuleFlowEventSupport().fireAfterRuleFlowNodeTriggered(this, (InternalWorkingMemory) getProcessInstance().getWorkingMemory());
+ if (!hidden) {
+ ((EventSupport) getProcessInstance().getWorkingMemory()).getRuleFlowEventSupport().fireAfterRuleFlowNodeTriggered(this, (InternalWorkingMemory) getProcessInstance().getWorkingMemory());
+ }
}
public abstract void internalTrigger(NodeInstance from, String type);
Modified: labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/CompositeNodeInstance.java
===================================================================
--- labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/CompositeNodeInstance.java 2008-07-26 20:08:55 UTC (rev 21240)
+++ labs/jbossrules/trunk/drools-core/src/main/java/org/drools/workflow/instance/node/CompositeNodeInstance.java 2008-07-27 00:52:09 UTC (rev 21241)
@@ -58,7 +58,8 @@
List<Connection> connections = nodeAndType.getNode().getIncomingConnections(nodeAndType.getType());
for (Iterator<Connection> iterator = connections.iterator(); iterator.hasNext(); ) {
Connection connection = iterator.next();
- if (((CompositeNode.CompositeNodeStart) connection.getFrom()).getInNode().getId() == from.getNodeId()) {
+ if ((connection.getFrom() instanceof CompositeNode.CompositeNodeStart) &&
+ ((CompositeNode.CompositeNodeStart) connection.getFrom()).getInNode().getId() == from.getNodeId()) {
NodeInstance nodeInstance = getNodeInstance(connection.getFrom());
nodeInstance.trigger(null, nodeAndType.getType());
return;
Modified: labs/jbossrules/trunk/drools-process/drools-bpel/src/main/java/org/drools/bpel/compiler/BPELCompiler.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpel/src/main/java/org/drools/bpel/compiler/BPELCompiler.java 2008-07-26 20:08:55 UTC (rev 21240)
+++ labs/jbossrules/trunk/drools-process/drools-bpel/src/main/java/org/drools/bpel/compiler/BPELCompiler.java 2008-07-27 00:52:09 UTC (rev 21241)
@@ -9,33 +9,74 @@
import org.apache.ode.bpel.compiler.bom.AssignActivity;
import org.apache.ode.bpel.compiler.bom.BpelObjectFactory;
import org.apache.ode.bpel.compiler.bom.Catch;
+import org.apache.ode.bpel.compiler.bom.EmptyActivity;
import org.apache.ode.bpel.compiler.bom.FlowActivity;
import org.apache.ode.bpel.compiler.bom.InvokeActivity;
import org.apache.ode.bpel.compiler.bom.Link;
import org.apache.ode.bpel.compiler.bom.LinkSource;
import org.apache.ode.bpel.compiler.bom.LinkTarget;
+import org.apache.ode.bpel.compiler.bom.OnAlarm;
+import org.apache.ode.bpel.compiler.bom.OnMessage;
+import org.apache.ode.bpel.compiler.bom.PickActivity;
import org.apache.ode.bpel.compiler.bom.Process;
import org.apache.ode.bpel.compiler.bom.ReceiveActivity;
import org.apache.ode.bpel.compiler.bom.ReplyActivity;
+import org.apache.ode.bpel.compiler.bom.ScopeActivity;
import org.apache.ode.bpel.compiler.bom.SequenceActivity;
+import org.apache.ode.bpel.compiler.bom.SwitchActivity;
+import org.apache.ode.bpel.compiler.bom.ThrowActivity;
+import org.apache.ode.bpel.compiler.bom.WaitActivity;
+import org.apache.ode.bpel.compiler.bom.WhileActivity;
import org.apache.ode.utils.StreamUtils;
+import org.drools.RuleBase;
import org.drools.bpel.core.BPELActivity;
import org.drools.bpel.core.BPELAssign;
+import org.drools.bpel.core.BPELEmpty;
import org.drools.bpel.core.BPELFaultHandler;
import org.drools.bpel.core.BPELFlow;
import org.drools.bpel.core.BPELInvoke;
+import org.drools.bpel.core.BPELPick;
import org.drools.bpel.core.BPELProcess;
import org.drools.bpel.core.BPELReceive;
import org.drools.bpel.core.BPELReply;
+import org.drools.bpel.core.BPELScope;
import org.drools.bpel.core.BPELSequence;
+import org.drools.bpel.core.BPELSwitch;
+import org.drools.bpel.core.BPELThrow;
+import org.drools.bpel.core.BPELWait;
+import org.drools.bpel.core.BPELWhile;
import org.drools.bpel.core.BPELActivity.SourceLink;
import org.drools.bpel.core.BPELActivity.TargetLink;
+import org.drools.common.AbstractRuleBase;
+import org.drools.compiler.DroolsError;
+import org.drools.compiler.PackageBuilder;
+import org.drools.compiler.ProcessBuilder;
import org.drools.process.core.context.variable.Variable;
import org.drools.process.core.context.variable.VariableScope;
import org.drools.process.core.datatype.impl.type.StringDataType;
import org.xml.sax.InputSource;
public class BPELCompiler {
+
+ public void loadProcess(RuleBase ruleBase, String fileName) {
+ try {
+ BPELCompiler compiler = new BPELCompiler();
+ BPELProcess process = compiler.compileProcess(
+ BPELCompiler.class.getResource(fileName));
+ PackageBuilder packageBuilder = new PackageBuilder();
+ ProcessBuilder processBuilder = new ProcessBuilder(packageBuilder);
+ processBuilder.buildProcess(process);
+ if (!processBuilder.getErrors().isEmpty()) {
+ for (DroolsError error: processBuilder.getErrors()) {
+ System.err.println(error);
+ }
+ throw new IllegalArgumentException("Could not build process " + fileName);
+ }
+ ((AbstractRuleBase) ruleBase).addProcess(process);
+ } catch (Throwable t) {
+ throw new IllegalArgumentException("Could not load process " + fileName, t);
+ }
+ }
public BPELProcess compileProcess(URL bpelFile) throws Exception {
InputSource isrc = new InputSource(new ByteArrayInputStream(StreamUtils.read(bpelFile)));
@@ -62,15 +103,17 @@
}
variableScope.setVariables(variables);
// fault handlers
- List<BPELFaultHandler> faultHandlers = new ArrayList<BPELFaultHandler>();
- for (Catch catcher: process.getFaultHandler().getCatches()) {
- BPELFaultHandler faultHandler = new BPELFaultHandler();
- faultHandler.setFaultName(catcher.getFaultName().toString());
- faultHandler.setFaultVariable(catcher.getFaultVariable());
- faultHandler.setActivity(compileActivity(catcher.getActivity()));
- faultHandlers.add(faultHandler);
- }
- result.setFaultHandlers(faultHandlers);
+ if (process.getFaultHandler() != null) {
+ List<BPELFaultHandler> faultHandlers = new ArrayList<BPELFaultHandler>();
+ for (Catch catcher: process.getFaultHandler().getCatches()) {
+ BPELFaultHandler faultHandler = new BPELFaultHandler();
+ faultHandler.setFaultName(catcher.getFaultName().toString());
+ faultHandler.setFaultVariable(catcher.getFaultVariable());
+ faultHandler.setActivity(compileActivity(catcher.getActivity()));
+ faultHandlers.add(faultHandler);
+ }
+ result.setFaultHandlers(faultHandlers);
+ }
return result;
}
@@ -134,9 +177,79 @@
} else if (activity instanceof AssignActivity) {
AssignActivity assignActivity = (AssignActivity) activity;
BPELAssign assign = new BPELAssign();
- // TODO
+ // TODO assign copy
assign.setAction("");
result = assign;
+ } else if (activity instanceof EmptyActivity) {
+ result = new BPELEmpty();
+ } else if (activity instanceof ThrowActivity) {
+ ThrowActivity throwActivity = (ThrowActivity) activity;
+ BPELThrow bpelThrow = new BPELThrow();
+ bpelThrow.setFaultName(throwActivity.getFaultName().toString());
+ bpelThrow.setFaultVariable(throwActivity.getFaultVariable());
+ result = bpelThrow;
+ } else if (activity instanceof PickActivity) {
+ PickActivity pickActivity = (PickActivity) activity;
+ BPELPick pick = new BPELPick();
+ pick.setCreateInstance(pickActivity.isCreateInstance());
+ for (OnMessage onMessage: pickActivity.getOnMessages()) {
+ BPELPick.OnMessage bpelOnMessage = pick.new OnMessage();
+ bpelOnMessage.setPartnerLink(onMessage.getPartnerLink());
+ bpelOnMessage.setPortType(onMessage.getPortType().toString());
+ bpelOnMessage.setOperation(onMessage.getOperation());
+ bpelOnMessage.setVariable(onMessage.getVariable());
+ bpelOnMessage.setActivity(compileActivity(onMessage.getActivity()));
+ pick.addOnMessage(bpelOnMessage);
+ }
+ for (OnAlarm onAlarm: pickActivity.getOnAlarms()) {
+ BPELPick.OnAlarm bpelOnAlarm = pick.new OnAlarm();
+ if (onAlarm.getFor() != null) {
+ bpelOnAlarm.setForExpression(onAlarm.getFor().toString());
+ }
+ if (onAlarm.getUntil() != null) {
+ bpelOnAlarm.setUntilExpression(onAlarm.getUntil().toString());
+ }
+ pick.addOnAlarm(bpelOnAlarm);
+ }
+ result = pick;
+ } else if (activity instanceof ScopeActivity) {
+ ScopeActivity scopeActivity = (ScopeActivity) activity;
+ BPELScope scope = new BPELScope();
+ VariableScope variableScope = scope.getVariableScope();
+ List<Variable> variables = new ArrayList<Variable>();
+ // TODO
+// for (org.apache.ode.bpel.compiler.bom.Variable variable: scopeActivity.getVariables()) {
+// Variable bpelVariable = new Variable();
+// bpelVariable.setName(variable.getName());
+// bpelVariable.setType(new StringDataType());
+// variables.add(bpelVariable);
+// }
+ variableScope.setVariables(variables);
+ result = scope;
+ } else if (activity instanceof SwitchActivity) {
+ SwitchActivity switchActivity = (SwitchActivity) activity;
+ BPELSwitch bpelSwitch = new BPELSwitch();
+ for (SwitchActivity.Case bpelCase: switchActivity.getCases()) {
+ bpelSwitch.addCase(bpelCase.getCondition().toString(), compileActivity(bpelCase.getActivity()));
+ }
+ result = bpelSwitch;
+ } else if (activity instanceof WaitActivity) {
+ WaitActivity waitActivity = (WaitActivity) activity;
+ BPELWait wait = new BPELWait();
+ if (waitActivity.getFor() != null) {
+ wait.setForExpression(waitActivity.getFor().toString());
+ }
+ if (waitActivity.getUntil() != null) {
+ wait.setUntilExpression(waitActivity.getUntil().toString());
+ }
+ result = wait;
+ } else if (activity instanceof WhileActivity) {
+ WhileActivity whileActivity = (WhileActivity) activity;
+ BPELWhile bpelWhile = new BPELWhile();
+ bpelWhile.setActivity(
+ whileActivity.getCondition().toString(),
+ compileActivity(whileActivity.getActivity()));
+ result = bpelWhile;
} else {
throw new IllegalArgumentException("Unknown activity type " + activity.getClass());
}
Modified: labs/jbossrules/trunk/drools-process/drools-bpel/src/main/java/org/drools/bpel/core/BPELFlow.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpel/src/main/java/org/drools/bpel/core/BPELFlow.java 2008-07-26 20:08:55 UTC (rev 21240)
+++ labs/jbossrules/trunk/drools-process/drools-bpel/src/main/java/org/drools/bpel/core/BPELFlow.java 2008-07-27 00:52:09 UTC (rev 21241)
@@ -26,9 +26,11 @@
public BPELFlow() {
split = new Split();
split.setType(Split.TYPE_AND);
+ split.setMetaData("hidden", true);
addNode(split);
join = new Join();
join.setType(Join.TYPE_AND);
+ join.setMetaData("hidden", true);
addNode(join);
linkIncomingConnections(
Node.CONNECTION_DEFAULT_TYPE,
@@ -40,12 +42,6 @@
Node.CONNECTION_DEFAULT_TYPE);
}
- public void setName(String name) {
- super.setName(name);
- split.setName(name + " split");
- join.setName(name + " join");
- }
-
public void setActivities(List<BPELActivity> activities) {
if (activities == null || activities.size() < 2) {
throw new IllegalArgumentException(
Modified: labs/jbossrules/trunk/drools-process/drools-bpel/src/main/java/org/drools/bpel/core/BPELPick.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpel/src/main/java/org/drools/bpel/core/BPELPick.java 2008-07-26 20:08:55 UTC (rev 21240)
+++ labs/jbossrules/trunk/drools-process/drools-bpel/src/main/java/org/drools/bpel/core/BPELPick.java 2008-07-27 00:52:09 UTC (rev 21241)
@@ -24,26 +24,23 @@
private TargetLink[] targetLinks;
public BPELPick() {
- EndNode endNode = new EndNode();
- endNode.setTerminate(false);
+ EndNode end = new EndNode();
+ end.setTerminate(false);
+ end.setMetaData("hidden", true);
join = new Join();
join.setType(Join.TYPE_XOR);
+ join.setMetaData("hidden", true);
addNode(join);
linkIncomingConnections(
Node.CONNECTION_DEFAULT_TYPE,
new CompositeNode.NodeAndType(
- endNode, Node.CONNECTION_DEFAULT_TYPE));
+ end, Node.CONNECTION_DEFAULT_TYPE));
linkOutgoingConnections(
new CompositeNode.NodeAndType(
join, Node.CONNECTION_DEFAULT_TYPE),
Node.CONNECTION_DEFAULT_TYPE);
}
- public void setName(String name) {
- super.setName(name);
- join.setName(name + " join");
- }
-
public boolean isCreateInstance() {
return createInstance;
}
@@ -56,6 +53,7 @@
EventNode eventNode = new EventNode();
eventNode.addEventFilter(new OnMessageEventFilter(
onMessage.getPartnerLink(), onMessage.getPortType(), onMessage.getOperation()));
+ eventNode.setMetaData("hidden", true);
addNode(eventNode);
addNode(onMessage.getActivity());
new ConnectionImpl(
Modified: labs/jbossrules/trunk/drools-process/drools-bpel/src/main/java/org/drools/bpel/core/BPELProcess.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpel/src/main/java/org/drools/bpel/core/BPELProcess.java 2008-07-26 20:08:55 UTC (rev 21240)
+++ labs/jbossrules/trunk/drools-process/drools-bpel/src/main/java/org/drools/bpel/core/BPELProcess.java 2008-07-27 00:52:09 UTC (rev 21241)
@@ -47,6 +47,7 @@
addNode(activity);
EndNode end = new EndNode();
end.setId(2);
+ end.setMetaData("hidden", true);
addNode(end);
new ConnectionImpl(
activity, Node.CONNECTION_DEFAULT_TYPE,
Modified: labs/jbossrules/trunk/drools-process/drools-bpel/src/main/java/org/drools/bpel/core/BPELSwitch.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpel/src/main/java/org/drools/bpel/core/BPELSwitch.java 2008-07-26 20:08:55 UTC (rev 21240)
+++ labs/jbossrules/trunk/drools-process/drools-bpel/src/main/java/org/drools/bpel/core/BPELSwitch.java 2008-07-27 00:52:09 UTC (rev 21241)
@@ -23,9 +23,11 @@
public BPELSwitch() {
split = new Split();
split.setType(Split.TYPE_XOR);
+ split.setMetaData("hidden", true);
addNode(split);
join = new Join();
join.setType(Join.TYPE_XOR);
+ join.setMetaData("hidden", true);
addNode(join);
linkIncomingConnections(
Node.CONNECTION_DEFAULT_TYPE,
@@ -37,12 +39,6 @@
Node.CONNECTION_DEFAULT_TYPE);
}
- public void setName(String name) {
- super.setName(name);
- split.setName(name + " split");
- join.setName(name + " join");
- }
-
public void addCase(String expression, BPELActivity activity) {
addNode(activity);
ConnectionImpl connection = new ConnectionImpl(
Modified: labs/jbossrules/trunk/drools-process/drools-bpel/src/main/java/org/drools/bpel/core/BPELWhile.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpel/src/main/java/org/drools/bpel/core/BPELWhile.java 2008-07-26 20:08:55 UTC (rev 21240)
+++ labs/jbossrules/trunk/drools-process/drools-bpel/src/main/java/org/drools/bpel/core/BPELWhile.java 2008-07-27 00:52:09 UTC (rev 21241)
@@ -23,11 +23,14 @@
public BPELWhile() {
join = new Join();
join.setType(Join.TYPE_XOR);
+ join.setMetaData("hidden", true);
addNode(join);
split = new Split();
split.setType(Split.TYPE_XOR);
+ split.setMetaData("hidden", true);
addNode(split);
BPELEmpty empty = new BPELEmpty();
+ empty.setMetaData("hidden", true);
addNode(empty);
linkIncomingConnections(
Node.CONNECTION_DEFAULT_TYPE,
@@ -46,16 +49,11 @@
ConstraintImpl constraint = new ConstraintImpl();
constraint.setConstraint("true");
constraint.setType("code");
- constraint.setPriority(Integer.MAX_VALUE);
+ constraint.setDialect("mvel");
+ constraint.setPriority(Integer.MAX_VALUE - 1);
split.setConstraint(connection, constraint);
}
- public void setName(String name) {
- super.setName(name);
- split.setName(name + " split");
- join.setName(name + " join");
- }
-
public void setActivity(String condition, BPELActivity activity) {
addNode(activity);
ConnectionImpl connection = new ConnectionImpl(
@@ -65,9 +63,10 @@
activity, Node.CONNECTION_DEFAULT_TYPE,
join, Node.CONNECTION_DEFAULT_TYPE);
ConstraintImpl constraint = new ConstraintImpl();
+ // TODO While constraint dialect
constraint.setConstraint(condition);
constraint.setType("code");
- constraint.setDialect("XPath");
+ constraint.setDialect("mvel");
constraint.setPriority(getNodes().length - 2);
split.setConstraint(connection, constraint);
}
Deleted: labs/jbossrules/trunk/drools-process/drools-bpel/src/main/java/org/drools/bpel/instance/BPELNodeInstanceFactoryRegistry.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpel/src/main/java/org/drools/bpel/instance/BPELNodeInstanceFactoryRegistry.java 2008-07-26 20:08:55 UTC (rev 21240)
+++ labs/jbossrules/trunk/drools-process/drools-bpel/src/main/java/org/drools/bpel/instance/BPELNodeInstanceFactoryRegistry.java 2008-07-27 00:52:09 UTC (rev 21241)
@@ -1,50 +0,0 @@
-package org.drools.bpel.instance;
-
-import org.drools.bpel.core.BPELAssign;
-import org.drools.bpel.core.BPELEmpty;
-import org.drools.bpel.core.BPELFlow;
-import org.drools.bpel.core.BPELInvoke;
-import org.drools.bpel.core.BPELPick;
-import org.drools.bpel.core.BPELReceive;
-import org.drools.bpel.core.BPELReply;
-import org.drools.bpel.core.BPELScope;
-import org.drools.bpel.core.BPELSequence;
-import org.drools.bpel.core.BPELSwitch;
-import org.drools.bpel.core.BPELThrow;
-import org.drools.bpel.core.BPELWait;
-import org.drools.bpel.core.BPELWhile;
-import org.drools.workflow.instance.impl.NodeInstanceFactoryRegistry;
-import org.drools.workflow.instance.impl.factory.CreateNewNodeFactory;
-
-public class BPELNodeInstanceFactoryRegistry extends NodeInstanceFactoryRegistry {
-
- public BPELNodeInstanceFactoryRegistry() {
- register( BPELAssign.class,
- new CreateNewNodeFactory( BPELAssignInstance.class ) );
- register( BPELFlow.class,
- new CreateNewNodeFactory( BPELFlowInstance.class ) );
- register( BPELInvoke.class,
- new CreateNewNodeFactory( BPELInvokeInstance.class ) );
- register( BPELReceive.class,
- new CreateNewNodeFactory( BPELReceiveInstance.class ) );
- register( BPELReply.class,
- new CreateNewNodeFactory( BPELReplyInstance.class ) );
- register( BPELScope.class,
- new CreateNewNodeFactory( BPELScopeInstance.class ) );
- register( BPELSequence.class,
- new CreateNewNodeFactory( BPELSequenceInstance.class ) );
- register( BPELEmpty.class,
- new CreateNewNodeFactory( BPELEmptyInstance.class ) );
- register( BPELPick.class,
- new CreateNewNodeFactory( BPELPickInstance.class ) );
- register( BPELSwitch.class,
- new CreateNewNodeFactory( BPELSwitchInstance.class ) );
- register( BPELThrow.class,
- new CreateNewNodeFactory( BPELThrowInstance.class ) );
- register( BPELWait.class,
- new CreateNewNodeFactory( BPELWaitInstance.class ) );
- register( BPELWhile.class,
- new CreateNewNodeFactory( BPELWhileInstance.class ) );
- }
-
-}
Modified: labs/jbossrules/trunk/drools-process/drools-bpel/src/main/java/org/drools/bpel/instance/BPELProcessInstance.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpel/src/main/java/org/drools/bpel/instance/BPELProcessInstance.java 2008-07-26 20:08:55 UTC (rev 21240)
+++ labs/jbossrules/trunk/drools-process/drools-bpel/src/main/java/org/drools/bpel/instance/BPELProcessInstance.java 2008-07-27 00:52:09 UTC (rev 21241)
@@ -7,6 +7,8 @@
import org.drools.bpel.core.BPELActivity;
import org.drools.bpel.core.BPELProcess;
import org.drools.bpel.core.BPELReceive;
+import org.drools.common.EventSupport;
+import org.drools.common.InternalWorkingMemory;
import org.drools.workflow.core.Node;
import org.drools.workflow.core.NodeContainer;
import org.drools.workflow.instance.NodeInstance;
@@ -53,7 +55,10 @@
return;
}
}
- ((BPELReceiveInstance) nodeInstanceContainer.getNodeInstance(receive)).triggerCompleted(message);
+ BPELReceiveInstance bpelReceiveInstance = (BPELReceiveInstance) nodeInstanceContainer.getNodeInstance(receive);
+ ((EventSupport) getWorkingMemory()).getRuleFlowEventSupport().fireBeforeRuleFlowNodeTriggered(bpelReceiveInstance, (InternalWorkingMemory) getWorkingMemory());
+ bpelReceiveInstance.triggerCompleted(message);
+ ((EventSupport) getWorkingMemory()).getRuleFlowEventSupport().fireAfterRuleFlowNodeTriggered(bpelReceiveInstance, (InternalWorkingMemory) getWorkingMemory());
}
private BPELReceive findBPELReceive(String partnerLink, String portType, String operation) {
Modified: labs/jbossrules/trunk/drools-process/drools-bpel/src/main/resources/META-INF/bpelNodeBuilderRegistry.conf
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpel/src/main/resources/META-INF/bpelNodeBuilderRegistry.conf 2008-07-26 20:08:55 UTC (rev 21240)
+++ labs/jbossrules/trunk/drools-process/drools-bpel/src/main/resources/META-INF/bpelNodeBuilderRegistry.conf 2008-07-27 00:52:09 UTC (rev 21241)
@@ -1,7 +1,11 @@
// we use MVEL to configure our nodes, simply populate a map, which will be added to the main registry
+import org.drools.workflow.core.node.Split;
import org.drools.bpel.core.BPELAssign;
+import org.drools.bpel.core.BPELEmpty;
import org.drools.process.builder.ActionNodeBuilder;
+import org.drools.process.builder.SplitNodeBuilder;
[
BPELAssign : new ActionNodeBuilder(),
+ BPELEmpty : new ActionNodeBuilder(),
]
Modified: labs/jbossrules/trunk/drools-process/drools-bpel/src/main/resources/META-INF/bpelProcessNodeInstanceFactory.conf
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpel/src/main/resources/META-INF/bpelProcessNodeInstanceFactory.conf 2008-07-26 20:08:55 UTC (rev 21240)
+++ labs/jbossrules/trunk/drools-process/drools-bpel/src/main/resources/META-INF/bpelProcessNodeInstanceFactory.conf 2008-07-27 00:52:09 UTC (rev 21241)
@@ -6,6 +6,12 @@
import org.drools.bpel.core.BPELReply;
import org.drools.bpel.core.BPELScope;
import org.drools.bpel.core.BPELSequence;
+import org.drools.bpel.core.BPELEmpty;
+import org.drools.bpel.core.BPELPick;
+import org.drools.bpel.core.BPELSwitch;
+import org.drools.bpel.core.BPELThrow;
+import org.drools.bpel.core.BPELWait;
+import org.drools.bpel.core.BPELWhile;
import org.drools.bpel.instance.BPELAssignInstance;
import org.drools.bpel.instance.BPELFlowInstance;
import org.drools.bpel.instance.BPELInvokeInstance;
@@ -13,6 +19,12 @@
import org.drools.bpel.instance.BPELReplyInstance;
import org.drools.bpel.instance.BPELScopeInstance;
import org.drools.bpel.instance.BPELSequenceInstance;
+import org.drools.bpel.instance.BPELEmptyInstance;
+import org.drools.bpel.instance.BPELPickInstance;
+import org.drools.bpel.instance.BPELSwitchInstance;
+import org.drools.bpel.instance.BPELThrowInstance;
+import org.drools.bpel.instance.BPELWaitInstance;
+import org.drools.bpel.instance.BPELWhileInstance;
import org.drools.workflow.instance.impl.factory.CreateNewNodeFactory;
[
@@ -23,4 +35,10 @@
BPELReply : new CreateNewNodeFactory( BPELReplyInstance ),
BPELScope : new CreateNewNodeFactory( BPELScopeInstance ),
BPELSequence : new CreateNewNodeFactory( BPELSequenceInstance ),
+ BPELEmpty : new CreateNewNodeFactory( BPELEmptyInstance ),
+ BPELPick : new CreateNewNodeFactory( BPELPickInstance ),
+ BPELSwitch : new CreateNewNodeFactory( BPELSwitchInstance ),
+ BPELThrow : new CreateNewNodeFactory( BPELThrowInstance ),
+ BPELWait : new CreateNewNodeFactory( BPELWaitInstance ),
+ BPELWhile : new CreateNewNodeFactory( BPELWhileInstance ),
]
Added: labs/jbossrules/trunk/drools-process/drools-bpel/src/main/resources/META-INF/drools.packagebuilder.conf
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpel/src/main/resources/META-INF/drools.packagebuilder.conf (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-bpel/src/main/resources/META-INF/drools.packagebuilder.conf 2008-07-27 00:52:09 UTC (rev 21241)
@@ -0,0 +1 @@
+processNodeBuilderRegistry = bpelNodeBuilderRegistry.conf
Added: labs/jbossrules/trunk/drools-process/drools-bpel/src/main/resources/META-INF/drools.rulebase.conf
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpel/src/main/resources/META-INF/drools.rulebase.conf (rev 0)
+++ labs/jbossrules/trunk/drools-process/drools-bpel/src/main/resources/META-INF/drools.rulebase.conf 2008-07-27 00:52:09 UTC (rev 21241)
@@ -0,0 +1,3 @@
+processInstanceFactoryRegistry = bpelProcessInstanceFactory.conf
+processNodeInstanceFactoryRegistry = bpelProcessNodeInstanceFactory.conf
+processContextInstanceFactoryRegistry = bpelProcessContextInstanceFactory.conf
Modified: labs/jbossrules/trunk/drools-process/drools-bpel/src/test/java/org/drools/bpel/test/BPELCompilerTest.java
===================================================================
--- labs/jbossrules/trunk/drools-process/drools-bpel/src/test/java/org/drools/bpel/test/BPELCompilerTest.java 2008-07-26 20:08:55 UTC (rev 21240)
+++ labs/jbossrules/trunk/drools-process/drools-bpel/src/test/java/org/drools/bpel/test/BPELCompilerTest.java 2008-07-27 00:52:09 UTC (rev 21241)
@@ -1,10 +1,7 @@
package org.drools.bpel.test;
-import java.util.Properties;
-
import junit.framework.TestCase;
-import org.drools.RuleBaseConfiguration;
import org.drools.RuleBaseFactory;
import org.drools.WorkingMemory;
import org.drools.bpel.compiler.BPELCompiler;
@@ -14,7 +11,6 @@
import org.drools.common.AbstractRuleBase;
import org.drools.common.InternalWorkingMemory;
import org.drools.compiler.PackageBuilder;
-import org.drools.compiler.PackageBuilderConfiguration;
import org.drools.compiler.ProcessBuilder;
import org.drools.process.instance.ProcessInstance;
import org.drools.process.instance.WorkItem;
@@ -30,20 +26,12 @@
BPELCompilerTest.class.getResource("/purchaseOrderProcess.bpel"));
// Build process
- Properties properties = new Properties();
- properties.put( "processNodeBuilderRegistry", "bpelNodeBuilderRegistry.conf" );
- PackageBuilderConfiguration packageConf = new PackageBuilderConfiguration( properties );
- PackageBuilder packageBuilder = new PackageBuilder(packageConf);
+ PackageBuilder packageBuilder = new PackageBuilder();
ProcessBuilder processBuilder = new ProcessBuilder(packageBuilder);
processBuilder.buildProcess(process);
// Load process
- properties = new Properties();
- properties.put( "processInstanceFactoryRegistry", "bpelProcessInstanceFactory.conf" );
- properties.put( "processNodeInstanceFactoryRegistry", "bpelProcessNodeInstanceFactory.conf" );
- properties.put( "processContextInstanceFactoryRegistry", "bpelProcessContextInstanceFactory.conf" );
- RuleBaseConfiguration ruleBaseConf = new RuleBaseConfiguration( properties );
- AbstractRuleBase ruleBase = (AbstractRuleBase) RuleBaseFactory.newRuleBase(ruleBaseConf);
+ AbstractRuleBase ruleBase = (AbstractRuleBase) RuleBaseFactory.newRuleBase();
ruleBase.addProcess(process);
InternalWorkingMemory workingMemory = new ReteooWorkingMemory(1, ruleBase);
WorkItemHandler handler = new WebServiceInvocationHandler();
More information about the jboss-svn-commits
mailing list