This is an automated email from the ASF dual-hosted git repository.
egonzalez pushed a commit to branch main
in repository
https://gitbox.apache.org/repos/asf/incubator-kie-kogito-runtimes.git
The following commit(s) were added to refs/heads/main by this push:
new dfc2c1c91d [incubator-kie-issues-1279] Support for start / general
escalations (#3539)
dfc2c1c91d is described below
commit dfc2c1c91d6d6aadff4c31755872f1d7136b3597
Author: Enrique <[email protected]>
AuthorDate: Wed Jun 19 10:46:25 2024 +0200
[incubator-kie-issues-1279] Support for start / general escalations (#3539)
---
.../org/jbpm/bpmn2/xml/BoundaryEventHandler.java | 18 +-
.../java/org/jbpm/bpmn2/xml/EndEventHandler.java | 3 +
.../bpmn2/xml/IntermediateThrowEventHandler.java | 2 +-
.../java/org/jbpm/bpmn2/xml/ProcessHandler.java | 15 +-
.../java/org/jbpm/bpmn2/xml/StartEventHandler.java | 25 +-
.../compiler/canonical/AbstractNodeVisitor.java | 12 +-
.../jbpm/compiler/canonical/ActionNodeVisitor.java | 40 +-
.../jbpm/compiler/canonical/EndNodeVisitor.java | 2 +-
.../jbpm/compiler/canonical/ProcessVisitor.java | 8 +-
.../jbpm/compiler/canonical/StartNodeVisitor.java | 112 +++---
.../impl/actions/HandleEscalationAction.java | 15 +-
.../main/java/org/jbpm/ruleflow/core/Metadata.java | 4 +-
.../org/jbpm/workflow/core/node/StartNode.java | 5 +
.../BPMN2-EscalationBoundaryEventWithTask.bpmn2 | 14 +-
.../BPMN2-EventSubprocessEscalation.bpmn2 | 2 +-
.../bpmn2/escalation/BPMN2-Multiescalation.bpmn2 | 414 +++++++++++++++++++++
.../escalation/BPMN2-TopLevelEscalation.bpmn2 | 152 ++++++++
.../java/org/jbpm/bpmn2/EscalationEventTest.java | 120 ++++--
.../java/org/jbpm/bpmn2/IntermediateEventTest.java | 25 +-
.../org/jbpm/test/utils/ProcessTestHelper.java | 6 +
.../BPMN2-EventSubprocessErrorSignalEmbedded.bpmn2 | 342 +++++++++++++++++
...ediateThrowEventMessageWithTransformation.bpmn2 | 87 -----
22 files changed, 1188 insertions(+), 235 deletions(-)
diff --git
a/jbpm/jbpm-bpmn2/src/main/java/org/jbpm/bpmn2/xml/BoundaryEventHandler.java
b/jbpm/jbpm-bpmn2/src/main/java/org/jbpm/bpmn2/xml/BoundaryEventHandler.java
index d3ef36e0de..1e338e8896 100755
--- a/jbpm/jbpm-bpmn2/src/main/java/org/jbpm/bpmn2/xml/BoundaryEventHandler.java
+++ b/jbpm/jbpm-bpmn2/src/main/java/org/jbpm/bpmn2/xml/BoundaryEventHandler.java
@@ -141,6 +141,7 @@ public class BoundaryEventHandler extends
AbstractNodeHandler {
while (xmlNode != null) {
String nodeName = xmlNode.getNodeName();
if ("escalationEventDefinition".equals(nodeName)) {
+ String type = null;
String escalationRef = ((Element)
xmlNode).getAttribute("escalationRef");
if (escalationRef != null && escalationRef.trim().length() >
0) {
Map<String, Escalation> escalations = (Map<String,
Escalation>) ((ProcessBuildData)
parser.getData()).getMetaData(ProcessHandler.ESCALATIONS);
@@ -151,16 +152,15 @@ public class BoundaryEventHandler extends
AbstractNodeHandler {
if (escalation == null) {
throw new ProcessParsingValidationException("Could not
find escalation " + escalationRef);
}
- List<EventFilter> eventFilters = new ArrayList<>();
- EventTypeFilter eventFilter = new EventTypeFilter();
- String type = escalation.getEscalationCode();
- eventFilter.setType("Escalation-" + attachedTo + "-" +
type);
- eventFilters.add(eventFilter);
- eventNode.setEventFilters(eventFilters);
- eventNode.setMetaData("EscalationEvent", type);
- } else {
- throw new UnsupportedOperationException("General
escalation is not yet supported.");
+ type = escalation.getEscalationCode();
}
+ List<EventFilter> eventFilters = new ArrayList<>();
+ EventTypeFilter eventFilter = new EventTypeFilter();
+
+ eventFilter.setType("Escalation-" + attachedTo + (type != null
? "-" + type : ""));
+ eventFilters.add(eventFilter);
+ eventNode.setEventFilters(eventFilters);
+ eventNode.setMetaData("EscalationEvent", type);
}
xmlNode = xmlNode.getNextSibling();
}
diff --git
a/jbpm/jbpm-bpmn2/src/main/java/org/jbpm/bpmn2/xml/EndEventHandler.java
b/jbpm/jbpm-bpmn2/src/main/java/org/jbpm/bpmn2/xml/EndEventHandler.java
index 2043d99ca5..db3395a9a7 100755
--- a/jbpm/jbpm-bpmn2/src/main/java/org/jbpm/bpmn2/xml/EndEventHandler.java
+++ b/jbpm/jbpm-bpmn2/src/main/java/org/jbpm/bpmn2/xml/EndEventHandler.java
@@ -89,6 +89,7 @@ public class EndEventHandler extends AbstractNodeHandler {
handleMessageNode(node, element, uri, localName, parser);
} else if ("errorEventDefinition".equals(nodeName)) {
FaultNode faultNode = new FaultNode();
+ faultNode.setMetaData(node.getMetaData());
faultNode.setId(node.getId());
faultNode.setName(node.getName());
faultNode.setTerminateParent(true);
@@ -100,6 +101,7 @@ public class EndEventHandler extends AbstractNodeHandler {
break;
} else if ("escalationEventDefinition".equals(nodeName)) {
FaultNode faultNode = new FaultNode();
+ faultNode.setMetaData(node.getMetaData());
faultNode.setId(node.getId());
faultNode.setName(node.getName());
node = faultNode;
@@ -258,6 +260,7 @@ public class EndEventHandler extends AbstractNodeHandler {
throw new ProcessParsingValidationException("Could not
find escalation " + escalationRef);
}
faultNode.setFaultName(escalation.getEscalationCode());
+ faultNode.setMetaData("FaultCode",
escalation.getEscalationCode());
} else {
// BPMN2 spec, p. 83: end event's with
<escalationEventDefintions>
// are _required_ to reference a specific
escalation(-code).
diff --git
a/jbpm/jbpm-bpmn2/src/main/java/org/jbpm/bpmn2/xml/IntermediateThrowEventHandler.java
b/jbpm/jbpm-bpmn2/src/main/java/org/jbpm/bpmn2/xml/IntermediateThrowEventHandler.java
index 5086c71990..689215bd42 100755
---
a/jbpm/jbpm-bpmn2/src/main/java/org/jbpm/bpmn2/xml/IntermediateThrowEventHandler.java
+++
b/jbpm/jbpm-bpmn2/src/main/java/org/jbpm/bpmn2/xml/IntermediateThrowEventHandler.java
@@ -309,7 +309,7 @@ public class IntermediateThrowEventHandler extends
AbstractNodeHandler {
DroolsConsequenceAction action = createJavaAction(new
HandleEscalationAction(faultName, variable));
actionNode.setAction(action);
} else {
- throw new ProcessParsingValidationException("General
escalation is not yet supported");
+ throw new ProcessParsingValidationException("Invalid throw
escalation. escalation code is required");
}
}
xmlNode = xmlNode.getNextSibling();
diff --git
a/jbpm/jbpm-bpmn2/src/main/java/org/jbpm/bpmn2/xml/ProcessHandler.java
b/jbpm/jbpm-bpmn2/src/main/java/org/jbpm/bpmn2/xml/ProcessHandler.java
index e9c8b060e5..210a59d223 100755
--- a/jbpm/jbpm-bpmn2/src/main/java/org/jbpm/bpmn2/xml/ProcessHandler.java
+++ b/jbpm/jbpm-bpmn2/src/main/java/org/jbpm/bpmn2/xml/ProcessHandler.java
@@ -480,8 +480,9 @@ public class ProcessHandler extends BaseAbstractHandler
implements Handler {
String variable = ((EventNode) node).getVariableName();
ActionExceptionHandler exceptionHandler = new ActionExceptionHandler();
+ String signalName = "Escalation-" + attachedTo + (escalationCode !=
null ? "-" + escalationCode : "");
DroolsConsequenceAction action =
- createJavaAction(new SignalProcessInstanceAction("Escalation-"
+ attachedTo + "-" + escalationCode, variable, null,
SignalProcessInstanceAction.PROCESS_INSTANCE_SCOPE));
+ createJavaAction(new SignalProcessInstanceAction(signalName,
variable, null, SignalProcessInstanceAction.PROCESS_INSTANCE_SCOPE));
exceptionHandler.setAction(action);
exceptionHandler.setFaultVariable(variable);
exceptionScope.setExceptionHandler(escalationCode, exceptionHandler);
@@ -873,8 +874,7 @@ public class ProcessHandler extends BaseAbstractHandler
implements Handler {
String type = ((EventTypeFilter)
filter).getType();
if (type.startsWith("Error-") ||
type.startsWith("Escalation")) {
- String faultCode = (String)
subNode.getMetaData().get("FaultCode");
- String replaceRegExp =
"Error-|Escalation-";
+ String faultCode = (String)
subNode.getMetaData().get(Metadata.FAULT_CODE);
final String signalType = type;
ExceptionScope exceptionScope =
@@ -894,13 +894,8 @@ public class ProcessHandler extends BaseAbstractHandler
implements Handler {
action.setMetaData("Action", new
SignalProcessInstanceAction(signalType, faultVariable, null,
SignalProcessInstanceAction.PROCESS_INSTANCE_SCOPE));
exceptionHandler.setAction(action);
exceptionHandler.setFaultVariable(faultVariable);
- if (faultCode != null) {
- String trimmedType =
type.replaceFirst(replaceRegExp, "");
-
exceptionScope.setExceptionHandler(trimmedType, exceptionHandler);
-
eventSubProcessHandlers.add(trimmedType);
- } else {
-
exceptionScope.setExceptionHandler(faultCode, exceptionHandler);
- }
+
eventSubProcessHandlers.add(faultCode);
+
exceptionScope.setExceptionHandler(faultCode, exceptionHandler);
} else if
(type.equals("Compensation")) {
// 1. Find the parent sub-process
to this event sub-process
NodeContainer parentSubProcess =
null;
diff --git
a/jbpm/jbpm-bpmn2/src/main/java/org/jbpm/bpmn2/xml/StartEventHandler.java
b/jbpm/jbpm-bpmn2/src/main/java/org/jbpm/bpmn2/xml/StartEventHandler.java
index b6b276cb92..4382928954 100755
--- a/jbpm/jbpm-bpmn2/src/main/java/org/jbpm/bpmn2/xml/StartEventHandler.java
+++ b/jbpm/jbpm-bpmn2/src/main/java/org/jbpm/bpmn2/xml/StartEventHandler.java
@@ -48,7 +48,15 @@ import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import static org.jbpm.ruleflow.core.Metadata.EVENT_TYPE;
+import static org.jbpm.ruleflow.core.Metadata.EVENT_TYPE_COMPENSATION;
+import static org.jbpm.ruleflow.core.Metadata.EVENT_TYPE_CONDITIONAL;
+import static org.jbpm.ruleflow.core.Metadata.EVENT_TYPE_ERROR;
+import static org.jbpm.ruleflow.core.Metadata.EVENT_TYPE_ESCALATION;
import static org.jbpm.ruleflow.core.Metadata.EVENT_TYPE_MESSAGE;
+import static org.jbpm.ruleflow.core.Metadata.EVENT_TYPE_NONE;
+import static org.jbpm.ruleflow.core.Metadata.EVENT_TYPE_SIGNAL;
+import static org.jbpm.ruleflow.core.Metadata.EVENT_TYPE_TIMER;
+import static org.jbpm.ruleflow.core.Metadata.FAULT_CODE;
import static org.jbpm.ruleflow.core.Metadata.MAPPING_VARIABLE;
import static org.jbpm.ruleflow.core.Metadata.MESSAGE_REF;
import static org.jbpm.ruleflow.core.Metadata.MESSAGE_TYPE;
@@ -89,7 +97,7 @@ public class StartEventHandler extends AbstractNodeHandler {
findSourceMappingVar(startNode.getIoSpecification().getDataOutputAssociation()).ifPresent(data
-> {
startNode.getMetaData().put(TRIGGER_MAPPING_INPUT,
data.getLabel());
});
-
+ startNode.setMetaData(EVENT_TYPE, EVENT_TYPE_NONE);
org.w3c.dom.Node xmlNode = element.getFirstChild();
while (xmlNode != null) {
String nodeName = xmlNode.getNodeName();
@@ -106,6 +114,7 @@ public class StartEventHandler extends AbstractNodeHandler {
}
ConstraintTrigger trigger = new ConstraintTrigger();
trigger.setConstraint(constraint);
+ startNode.setMetaData(EVENT_TYPE, EVENT_TYPE_CONDITIONAL);
startNode.addTrigger(trigger);
break;
} else if ("signalEventDefinition".equals(nodeName)) {
@@ -116,6 +125,7 @@ public class StartEventHandler extends AbstractNodeHandler {
if (type != null && type.trim().length() > 0) {
addTriggerWithInMappings(startNode, type);
}
+ startNode.setMetaData(EVENT_TYPE, EVENT_TYPE_SIGNAL);
startNode.setMetaData(MESSAGE_TYPE, type);
startNode.setMetaData(TRIGGER_TYPE,
TriggerMetaData.TriggerType.Signal.name());
Signal signal = findSignalByName(parser, type);
@@ -143,6 +153,7 @@ public class StartEventHandler extends AbstractNodeHandler {
addTriggerWithInMappings(startNode, "Message-" +
message.getName(), message.getId(), ((RuleFlowProcess)
parser.getMetaData().get("CurrentProcessDefinition")).getCorrelationManager());
} else if ("timerEventDefinition".equals(nodeName)) {
+ startNode.setMetaData(EVENT_TYPE, EVENT_TYPE_TIMER);
handleTimerNode(startNode, element, uri, localName, parser);
// following event definitions are only for event sub process
and will be validated to not be included in top process definitions
} else if ("errorEventDefinition".equals(nodeName)) {
@@ -150,7 +161,7 @@ public class StartEventHandler extends AbstractNodeHandler {
// - a <startEvent> in an Event Sub-Process
// - *without* the 'isInterupting' attribute always
interrupts (containing process)
startNode.setInterrupting(true);
-
+ startNode.setMetaData(EVENT_TYPE, EVENT_TYPE_ERROR);
String errorRef = ((Element) xmlNode).getAttribute("errorRef");
if (errorRef != null && errorRef.trim().length() > 0) {
List<Error> errors = (List<Error>) ((ProcessBuildData)
parser.getData()).getMetaData("Errors");
@@ -166,7 +177,7 @@ public class StartEventHandler extends AbstractNodeHandler {
if (error == null) {
throw new ProcessParsingValidationException("Could not
find error " + errorRef);
}
- startNode.setMetaData("FaultCode", error.getErrorCode());
+ startNode.setMetaData(FAULT_CODE, error.getErrorCode());
startNode.setMetaData(MESSAGE_TYPE, error.getErrorCode());
startNode.setMetaData(TRIGGER_REF, error.getErrorCode());
startNode.setMetaData(TRIGGER_TYPE,
TriggerMetaData.TriggerType.Signal.name());
@@ -174,6 +185,7 @@ public class StartEventHandler extends AbstractNodeHandler {
addTriggerWithInMappings(startNode, "Error-" +
error.getErrorCode());
}
} else if ("escalationEventDefinition".equals(nodeName)) {
+ startNode.setMetaData(EVENT_TYPE, EVENT_TYPE_ESCALATION);
String escalationRef = ((Element)
xmlNode).getAttribute("escalationRef");
if (escalationRef != null && escalationRef.trim().length() >
0) {
Map<String, Escalation> escalations = (Map<String,
Escalation>) ((ProcessBuildData)
parser.getData()).getMetaData(ProcessHandler.ESCALATIONS);
@@ -184,10 +196,15 @@ public class StartEventHandler extends
AbstractNodeHandler {
if (escalation == null) {
throw new ProcessParsingValidationException("Could not
find escalation " + escalationRef);
}
-
+ startNode.setMetaData(FAULT_CODE,
escalation.getEscalationCode());
+ startNode.setMetaData(TRIGGER_REF, "Escalation-" +
escalation.getEscalationCode());
addTriggerWithInMappings(startNode, "Escalation-" +
escalation.getEscalationCode());
+ } else {
+ startNode.setMetaData(TRIGGER_REF, "Escalation-");
+ addTriggerWithInMappings(startNode, "Escalation-");
}
} else if ("compensateEventDefinition".equals(nodeName)) {
+ startNode.setMetaData(EVENT_TYPE, EVENT_TYPE_COMPENSATION);
handleCompensationNode(startNode, xmlNode);
}
xmlNode = xmlNode.getNextSibling();
diff --git
a/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/compiler/canonical/AbstractNodeVisitor.java
b/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/compiler/canonical/AbstractNodeVisitor.java
index b548f30477..1b21e056e7 100644
---
a/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/compiler/canonical/AbstractNodeVisitor.java
+++
b/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/compiler/canonical/AbstractNodeVisitor.java
@@ -33,6 +33,7 @@ import org.jbpm.process.core.context.variable.Mappable;
import org.jbpm.process.core.context.variable.Variable;
import org.jbpm.process.core.context.variable.VariableScope;
import org.jbpm.process.core.datatype.DataTypeResolver;
+import org.jbpm.process.instance.impl.actions.HandleEscalationAction;
import org.jbpm.process.instance.impl.actions.ProduceEventAction;
import org.jbpm.process.instance.impl.actions.SignalProcessInstanceAction;
import org.jbpm.ruleflow.core.Metadata;
@@ -371,7 +372,7 @@ public abstract class AbstractNodeVisitor<T extends Node>
extends AbstractVisito
conditionBody);
}
- public static ObjectCreationExpr buildAction(String signalName, String
variable, String inputVariable, String scope) {
+ public static ObjectCreationExpr buildSignalAction(String signalName,
String variable, String inputVariable, String scope) {
return new ObjectCreationExpr(null,
parseClassOrInterfaceType(SignalProcessInstanceAction.class.getCanonicalName()),
new NodeList<>(new StringLiteralExpr(signalName), variable !=
null ? new StringLiteralExpr(variable.replace("\"", "\\\""))
@@ -383,6 +384,15 @@ public abstract class AbstractNodeVisitor<T extends Node>
extends AbstractVisito
parseClassOrInterfaceType(String.class.getCanonicalName()), new
NullLiteralExpr())));
}
+ public static ObjectCreationExpr buildEscalationAction(String faultName,
String inputVariable) {
+ return new ObjectCreationExpr(null,
+
parseClassOrInterfaceType(HandleEscalationAction.class.getCanonicalName()),
+ new NodeList<>(
+ faultName != null ? new StringLiteralExpr(faultName) :
new NullLiteralExpr(),
+ inputVariable != null ? new
StringLiteralExpr(inputVariable) : new NullLiteralExpr()));
+
+ }
+
public static LambdaExpr buildCompensationLambdaExpr(String
compensationRef) {
BlockStmt actionBody = new BlockStmt();
MethodCallExpr getProcessInstance = new MethodCallExpr(new
NameExpr(KCONTEXT_VAR), "getProcessInstance");
diff --git
a/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/compiler/canonical/ActionNodeVisitor.java
b/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/compiler/canonical/ActionNodeVisitor.java
index 86ae851d3d..415f67b873 100644
---
a/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/compiler/canonical/ActionNodeVisitor.java
+++
b/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/compiler/canonical/ActionNodeVisitor.java
@@ -24,6 +24,7 @@ import java.util.Optional;
import org.jbpm.process.core.context.exception.CompensationScope;
import org.jbpm.process.core.context.variable.Variable;
import org.jbpm.process.core.context.variable.VariableScope;
+import org.jbpm.process.instance.impl.actions.HandleEscalationAction;
import
org.jbpm.process.instance.impl.actions.ProcessInstanceCompensationAction;
import org.jbpm.ruleflow.core.Metadata;
import org.jbpm.ruleflow.core.factory.ActionNodeFactory;
@@ -79,27 +80,34 @@ public class ActionNodeVisitor extends
AbstractNodeVisitor<ActionNode> {
} else if (node.getMetaData(TRIGGER_REF) != null) { // if there is
trigger defined on end event create TriggerMetaData for it
body.addStatement(getFactoryMethod(getNodeId(node), METHOD_ACTION,
buildProducerAction(node, metadata)));
} else if (node.getMetaData(REF) != null &&
EVENT_TYPE_SIGNAL.equals(node.getMetaData(EVENT_TYPE))) {
- body.addStatement(getFactoryMethod(getNodeId(node), METHOD_ACTION,
buildAction((String) node.getMetaData(REF),
+ body.addStatement(getFactoryMethod(getNodeId(node), METHOD_ACTION,
buildSignalAction((String) node.getMetaData(REF),
(String) node.getMetaData(VARIABLE), (String)
node.getMetaData(MAPPING_VARIABLE_INPUT), (String)
node.getMetaData(CUSTOM_SCOPE))));
} else if (node.getAction() instanceof DroolsConsequenceAction) {
- BlockStmt actionBody = new BlockStmt();
- String consequence = getActionConsequence(node.getAction());
- if (consequence == null || consequence.trim().isEmpty()) {
- LOGGER.warn("Action node {} name {} has no action defined!",
node.getId().toExternalFormat(), node.getName());
+ DroolsConsequenceAction droolsConsequenceAction =
(DroolsConsequenceAction) node.getAction();
+ if (droolsConsequenceAction.getMetaData("Action") instanceof
HandleEscalationAction) {
+ HandleEscalationAction action = (HandleEscalationAction)
droolsConsequenceAction.getMetaData("Action");
+ body.addStatement(getFactoryMethod(getNodeId(node),
METHOD_ACTION, buildEscalationAction(action.getFaultName(),
action.getVariableName())));
} else {
- List<Variable> variables = variableScope.getVariables();
- variables.stream()
- .filter(v -> consequence.contains(v.getName()))
- .map(ActionNodeVisitor::makeAssignment)
- .forEach(actionBody::addStatement);
+ BlockStmt actionBody = new BlockStmt();
+ String consequence = getActionConsequence(node.getAction());
+ if (consequence == null || consequence.trim().isEmpty()) {
+ LOGGER.warn("Action node {} name {} has no action
defined!", node.getId().toExternalFormat(), node.getName());
+ } else {
+ List<Variable> variables = variableScope.getVariables();
+ variables.stream()
+ .filter(v -> consequence.contains(v.getName()))
+ .map(ActionNodeVisitor::makeAssignment)
+ .forEach(actionBody::addStatement);
- BlockStmt blockStmt = StaticJavaParser.parseBlock("{" +
consequence + "}");
- blockStmt.getStatements().forEach(actionBody::addStatement);
+ BlockStmt blockStmt = StaticJavaParser.parseBlock("{" +
consequence + "}");
+
blockStmt.getStatements().forEach(actionBody::addStatement);
+ }
+ LambdaExpr lambda = new LambdaExpr(
+ new Parameter(new UnknownType(), KCONTEXT_VAR), //
(kcontext) ->
+ actionBody);
+ body.addStatement(getFactoryMethod(getNodeId(node),
METHOD_ACTION, lambda));
}
- LambdaExpr lambda = new LambdaExpr(
- new Parameter(new UnknownType(), KCONTEXT_VAR), //
(kcontext) ->
- actionBody);
- body.addStatement(getFactoryMethod(getNodeId(node), METHOD_ACTION,
lambda));
+
}
addNodeMappings(node, body, getNodeId(node));
body.addStatement(getDoneMethod(getNodeId(node)));
diff --git
a/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/compiler/canonical/EndNodeVisitor.java
b/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/compiler/canonical/EndNodeVisitor.java
index a875f862ef..23f4edffed 100644
---
a/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/compiler/canonical/EndNodeVisitor.java
+++
b/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/compiler/canonical/EndNodeVisitor.java
@@ -75,7 +75,7 @@ public class EndNodeVisitor extends
AbstractNodeVisitor<EndNode> {
} else if (node.getMetaData(TRIGGER_REF) != null) {
body.addStatement(getFactoryMethod(getNodeId(node), METHOD_ACTION,
buildProducerAction(node, metadata)));
} else if (node.getMetaData(REF) != null &&
EVENT_TYPE_SIGNAL.equals(node.getMetaData(EVENT_TYPE))) {
- body.addStatement(getFactoryMethod(getNodeId(node), METHOD_ACTION,
buildAction((String) node.getMetaData(REF),
+ body.addStatement(getFactoryMethod(getNodeId(node), METHOD_ACTION,
buildSignalAction((String) node.getMetaData(REF),
(String) node.getMetaData(VARIABLE), (String)
node.getMetaData(MAPPING_VARIABLE_INPUT), (String)
node.getMetaData(CUSTOM_SCOPE))));
}
addNodeMappings(node, body, getNodeId(node));
diff --git
a/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/compiler/canonical/ProcessVisitor.java
b/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/compiler/canonical/ProcessVisitor.java
index 30316ea729..ee0ac4e086 100644
---
a/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/compiler/canonical/ProcessVisitor.java
+++
b/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/compiler/canonical/ProcessVisitor.java
@@ -304,14 +304,12 @@ public class ProcessVisitor extends AbstractVisitor {
String faultCode = e.getKey();
ActionExceptionHandler handler = (ActionExceptionHandler)
e.getValue();
Optional<String> faultVariable =
Optional.ofNullable(handler.getFaultVariable());
- SignalProcessInstanceAction action =
- (SignalProcessInstanceAction)
handler.getAction().getMetaData("Action");
+ SignalProcessInstanceAction action =
(SignalProcessInstanceAction) handler.getAction().getMetaData("Action");
String signalName = action.getSignalName();
body.addStatement(getFactoryMethod(getFieldName(context.getContextContainer()),
METHOD_ERROR_EXCEPTION_HANDLER,
new StringLiteralExpr(signalName),
- new StringLiteralExpr(faultCode),
- faultVariable.<Expression> map(StringLiteralExpr::new)
- .orElse(new NullLiteralExpr())));
+ faultCode != null ? new StringLiteralExpr(faultCode) :
new NullLiteralExpr(),
+ faultVariable.<Expression>
map(StringLiteralExpr::new).orElse(new NullLiteralExpr())));
});
}
}
diff --git
a/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/compiler/canonical/StartNodeVisitor.java
b/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/compiler/canonical/StartNodeVisitor.java
index 8be94913cf..5bb88d149c 100644
---
a/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/compiler/canonical/StartNodeVisitor.java
+++
b/jbpm/jbpm-flow-builder/src/main/java/org/jbpm/compiler/canonical/StartNodeVisitor.java
@@ -19,10 +19,12 @@
package org.jbpm.compiler.canonical;
import java.util.Map;
+import java.util.Optional;
import org.jbpm.process.core.context.variable.Variable;
import org.jbpm.process.core.context.variable.VariableScope;
import org.jbpm.process.core.timer.Timer;
+import org.jbpm.ruleflow.core.Metadata;
import org.jbpm.ruleflow.core.factory.StartNodeFactory;
import org.jbpm.workflow.core.node.StartNode;
@@ -31,11 +33,10 @@ import com.github.javaparser.ast.expr.IntegerLiteralExpr;
import com.github.javaparser.ast.expr.StringLiteralExpr;
import com.github.javaparser.ast.stmt.BlockStmt;
-import static org.jbpm.ruleflow.core.Metadata.EVENT_TYPE_SIGNAL;
+import static org.jbpm.ruleflow.core.Metadata.EVENT_TYPE;
import static org.jbpm.ruleflow.core.Metadata.MESSAGE_TYPE;
import static org.jbpm.ruleflow.core.Metadata.TRIGGER_MAPPING;
import static org.jbpm.ruleflow.core.Metadata.TRIGGER_REF;
-import static org.jbpm.ruleflow.core.Metadata.TRIGGER_TYPE;
import static
org.jbpm.ruleflow.core.factory.StartNodeFactory.METHOD_INTERRUPTING;
import static org.jbpm.ruleflow.core.factory.StartNodeFactory.METHOD_TIMER;
import static org.jbpm.ruleflow.core.factory.StartNodeFactory.METHOD_TRIGGER;
@@ -48,65 +49,78 @@ public class StartNodeVisitor extends
AbstractNodeVisitor<StartNode> {
}
@Override
- public void visitNode(String factoryField, StartNode node, BlockStmt body,
VariableScope variableScope, ProcessMetaData metadata) {
- body.addStatement(getAssignedFactoryMethod(factoryField,
StartNodeFactory.class, getNodeId(node), getNodeKey(),
getWorkflowElementConstructor(node.getId())))
- .addStatement(getNameMethod(node, "Start"))
- .addStatement(getFactoryMethod(getNodeId(node),
METHOD_INTERRUPTING, new BooleanLiteralExpr(node.isInterrupting())));
-
- addNodeMappings(node, body, getNodeId(node));
- visitMetaData(node.getMetaData(), body, getNodeId(node));
- body.addStatement(getDoneMethod(getNodeId(node)));
- if (node.getTimer() != null) {
- Timer timer = node.getTimer();
- body.addStatement(getFactoryMethod(getNodeId(node), METHOD_TIMER,
getOrNullExpr(timer.getDelay()),
- getOrNullExpr(timer.getPeriod()),
- getOrNullExpr(timer.getDate()),
- new IntegerLiteralExpr(node.getTimer().getTimeType())));
-
- } else if (node.getTriggers() != null &&
!node.getTriggers().isEmpty()) {
- TriggerMetaData triggerMetaData = buildTriggerMetadata(node);
- metadata.addTrigger(triggerMetaData);
- handleSignal(node, node.getMetaData(), body, variableScope,
metadata);
- } else {
- // since there is start node without trigger then make sure it is
startable
- metadata.setStartable(true);
+ public void visitNode(String factoryField, StartNode startNode, BlockStmt
body, VariableScope variableScope, ProcessMetaData metadata) {
+ body.addStatement(getAssignedFactoryMethod(factoryField,
StartNodeFactory.class, getNodeId(startNode), getNodeKey(),
getWorkflowElementConstructor(startNode.getId())))
+ .addStatement(getNameMethod(startNode, "Start"))
+ .addStatement(getFactoryMethod(getNodeId(startNode),
METHOD_INTERRUPTING, new BooleanLiteralExpr(startNode.isInterrupting())));
+ visitMetaData(startNode.getMetaData(), body, getNodeId(startNode));
+ addNodeMappings(startNode, body, getNodeId(startNode));
+ Map<String, Object> nodeMetaData = startNode.getMetaData();
+ String eventType = (String) startNode.getMetaData(EVENT_TYPE);
+ switch (eventType) {
+ case Metadata.EVENT_TYPE_TIMER: {
+ Timer timer = startNode.getTimer();
+ body.addStatement(getFactoryMethod(getNodeId(startNode),
METHOD_TIMER, getOrNullExpr(timer.getDelay()),
+ getOrNullExpr(timer.getPeriod()),
+ getOrNullExpr(timer.getDate()),
+ new
IntegerLiteralExpr(startNode.getTimer().getTimeType())));
+ break;
+ }
+ case Metadata.EVENT_TYPE_SIGNAL:
+ case Metadata.EVENT_TYPE_MESSAGE: {
+ TriggerMetaData triggerMetaData =
buildTriggerMetadata(startNode);
+ metadata.addTrigger(triggerMetaData);
+ handleIO(startNode, startNode.getMetaData(), body,
variableScope, metadata);
+ metadata.addSignal((String) nodeMetaData.get(TRIGGER_REF),
computePayloadType(startNode, variableScope).orElse(null));
+ break;
+ }
+ case Metadata.EVENT_TYPE_ERROR:
+ case Metadata.EVENT_TYPE_ESCALATION:
+ case Metadata.EVENT_TYPE_COMPENSATION:
+ case Metadata.EVENT_TYPE_CONDITIONAL:
+ handleIO(startNode, startNode.getMetaData(), body,
variableScope, metadata);
+ metadata.addSignal((String) nodeMetaData.get(TRIGGER_REF),
null);
+ break;
+ default:
+ // since there is start node without trigger then make sure it
is startable
+ metadata.setStartable(true);
+ break;
}
+ body.addStatement(getDoneMethod(getNodeId(startNode)));
}
private TriggerMetaData buildTriggerMetadata(StartNode node) {
return TriggerMetaData.of(node, (String)
node.getMetaData(TRIGGER_MAPPING));
}
- protected void handleSignal(StartNode startNode, Map<String, Object>
nodeMetaData, BlockStmt body, VariableScope variableScope, ProcessMetaData
metadata) {
- if (EVENT_TYPE_SIGNAL.equalsIgnoreCase((String)
startNode.getMetaData(TRIGGER_TYPE))) {
- Variable variable = null;
- if
(!startNode.getIoSpecification().getDataOutputAssociation().isEmpty()) {
+ protected void handleIO(StartNode startNode, Map<String, Object>
nodeMetaData, BlockStmt body, VariableScope variableScope, ProcessMetaData
metadata) {
+ if (nodeMetaData.containsKey(MESSAGE_TYPE)) {
+ body.addStatement(getFactoryMethod(getNodeId(startNode),
METHOD_TRIGGER,
+ new StringLiteralExpr((String)
nodeMetaData.get(TRIGGER_REF)),
+ buildDataAssociationsExpression(startNode,
startNode.getIoSpecification().getDataOutputAssociation())));
+ } else if (nodeMetaData.containsKey(TRIGGER_REF)) {
+ body.addStatement(getFactoryMethod(getNodeId(startNode),
METHOD_TRIGGER,
+ new StringLiteralExpr((String)
nodeMetaData.get(TRIGGER_REF)),
+ buildDataAssociationsExpression(startNode,
startNode.getIoSpecification().getDataOutputAssociation())));
+ }
+ }
- body.addStatement(getFactoryMethod(getNodeId(startNode),
METHOD_TRIGGER,
- new StringLiteralExpr((String)
nodeMetaData.get(TRIGGER_REF)),
- buildDataAssociationsExpression(startNode,
startNode.getIoSpecification().getDataOutputAssociation())));
+ public Optional<String> computePayloadType(StartNode startNode,
VariableScope variableScope) {
- String triggerMapping = (String)
nodeMetaData.get(TRIGGER_MAPPING);
- variable = variableScope.findVariable(triggerMapping);
+ String triggerMapping = (String)
startNode.getMetaData(TRIGGER_MAPPING);
+ if (triggerMapping == null) {
+ return Optional.empty();
+ }
- if (variable == null) {
- // check parent node container
- VariableScope vscope = (VariableScope)
startNode.resolveContext(VariableScope.VARIABLE_SCOPE, triggerMapping);
- variable = vscope.findVariable(triggerMapping);
- }
+ Variable variable = null;
+ variable = variableScope.findVariable(triggerMapping);
- metadata.addSignal((String) nodeMetaData.get(MESSAGE_TYPE),
variable != null ? variable.getType().getStringType() : null);
- } else {
- body.addStatement(getFactoryMethod(getNodeId(startNode),
METHOD_TRIGGER,
- new StringLiteralExpr((String)
nodeMetaData.get(MESSAGE_TYPE)),
- buildDataAssociationsExpression(startNode,
startNode.getIoSpecification().getDataOutputAssociation())));
- }
- metadata.addSignal((String) nodeMetaData.get(MESSAGE_TYPE),
variable != null ? variable.getType().getStringType() : null);
- } else {
- body.addStatement(getFactoryMethod(getNodeId(startNode),
METHOD_TRIGGER,
- new StringLiteralExpr((String)
nodeMetaData.get(TRIGGER_REF)),
- buildDataAssociationsExpression(startNode,
startNode.getIoSpecification().getDataOutputAssociation())));
+ if (variable == null) {
+ // check parent node container
+ VariableScope vscope = (VariableScope)
startNode.resolveContext(VariableScope.VARIABLE_SCOPE, triggerMapping);
+ variable = vscope.findVariable(triggerMapping);
}
+ return Optional.ofNullable(variable != null ?
variable.getType().getStringType() : null);
}
}
diff --git
a/jbpm/jbpm-flow/src/main/java/org/jbpm/process/instance/impl/actions/HandleEscalationAction.java
b/jbpm/jbpm-flow/src/main/java/org/jbpm/process/instance/impl/actions/HandleEscalationAction.java
index dff678aa3f..ad1e861835 100644
---
a/jbpm/jbpm-flow/src/main/java/org/jbpm/process/instance/impl/actions/HandleEscalationAction.java
+++
b/jbpm/jbpm-flow/src/main/java/org/jbpm/process/instance/impl/actions/HandleEscalationAction.java
@@ -45,6 +45,14 @@ public class HandleEscalationAction implements Action,
Serializable {
this.variableName = variableName;
}
+ public String getFaultName() {
+ return faultName;
+ }
+
+ public String getVariableName() {
+ return variableName;
+ }
+
@Override
public void execute(KogitoProcessContext context) throws Exception {
ExceptionScopeInstance scopeInstance = (ExceptionScopeInstance)
((NodeInstance)
context.getNodeInstance()).resolveContextInstance(ExceptionScope.EXCEPTION_SCOPE,
@@ -53,12 +61,13 @@ public class HandleEscalationAction implements Action,
Serializable {
Object event = variableName == null ? null :
context.getVariable(variableName);
NodeInstanceImpl impl = ((NodeInstanceImpl)
context.getNodeInstance());
// for event nodes we create a "virtual assignment and we process
it"
- Map<String, Object> outputSet =
Collections.singletonMap(variableName, event);
+ Map<String, Object> outputSet = variableName != null ?
Collections.singletonMap(variableName, event) : Collections.emptyMap();
NodeIoHelper.processOutputs(impl, varRef -> outputSet.get(varRef),
target -> impl.getVariable(target));
- context.getContextData().put("Exception",
context.getVariable(variableName));
+ if (variableName != null) {
+ context.getContextData().put("Exception",
context.getVariable(variableName));
+ }
scopeInstance.handleException(faultName, context);
} else {
-
((ProcessInstance)
context.getProcessInstance()).setState(STATE_ABORTED);
}
}
diff --git a/jbpm/jbpm-flow/src/main/java/org/jbpm/ruleflow/core/Metadata.java
b/jbpm/jbpm-flow/src/main/java/org/jbpm/ruleflow/core/Metadata.java
index 682fbdc064..bb3e9d71d5 100644
--- a/jbpm/jbpm-flow/src/main/java/org/jbpm/ruleflow/core/Metadata.java
+++ b/jbpm/jbpm-flow/src/main/java/org/jbpm/ruleflow/core/Metadata.java
@@ -36,6 +36,7 @@ public class Metadata {
public static final String TRIGGER_MAPPING_INPUT = "TriggerMappingInput";
public static final String MAPPING_VARIABLE = "MappingVariable";
public static final String MAPPING_VARIABLE_INPUT = "MappingVariableInput";
+ public static final String FAULT_CODE = "FaultCode";
public static final String EVENT_TYPE = "EventType";
public static final String EVENT_TYPE_TIMER = "Timer";
public static final String EVENT_TYPE_SIGNAL = "signal";
@@ -43,8 +44,9 @@ public class Metadata {
public static final String EVENT_TYPE_COMPENSATION = "Compensation";
public static final String EVENT_TYPE_ERROR = "error";
public static final String EVENT_TYPE_CONDITIONAL = "conditional";
+ public static final String EVENT_TYPE_NONE = "none";
public static final String EVENT_TYPE_LINK = "link";
- public static final Object EVENT_TYPE_ESCALATION = "Escalation";
+ public static final String EVENT_TYPE_ESCALATION = "Escalation";
public static final String CUSTOM_SCOPE = "customScope";
public static final String ATTACHED_TO = "AttachedTo";
public static final String TIME_CYCLE = "TimeCycle";
diff --git
a/jbpm/jbpm-flow/src/main/java/org/jbpm/workflow/core/node/StartNode.java
b/jbpm/jbpm-flow/src/main/java/org/jbpm/workflow/core/node/StartNode.java
index f1062e67d6..cfc91ddeec 100755
--- a/jbpm/jbpm-flow/src/main/java/org/jbpm/workflow/core/node/StartNode.java
+++ b/jbpm/jbpm-flow/src/main/java/org/jbpm/workflow/core/node/StartNode.java
@@ -22,6 +22,7 @@ import java.util.ArrayList;
import java.util.List;
import org.jbpm.process.core.timer.Timer;
+import org.jbpm.ruleflow.core.Metadata;
import org.jbpm.workflow.core.Node;
import org.jbpm.workflow.core.impl.ExtendedNodeImpl;
import org.kie.api.definition.process.Connection;
@@ -42,6 +43,10 @@ public class StartNode extends ExtendedNodeImpl {
private Timer timer;
+ public StartNode() {
+ setMetaData(Metadata.EVENT_TYPE, Metadata.EVENT_TYPE_NONE);
+ }
+
public void addTrigger(Trigger trigger) {
if (triggers == null) {
triggers = new ArrayList<>();
diff --git
a/jbpm/jbpm-tests/src/test/resources/escalation/BPMN2-EscalationBoundaryEventWithTask.bpmn2
b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/escalation/BPMN2-EscalationBoundaryEventWithTask.bpmn2
similarity index 92%
rename from
jbpm/jbpm-tests/src/test/resources/escalation/BPMN2-EscalationBoundaryEventWithTask.bpmn2
rename to
jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/escalation/BPMN2-EscalationBoundaryEventWithTask.bpmn2
index df9e975bba..9d4823f3bd 100755
---
a/jbpm/jbpm-tests/src/test/resources/escalation/BPMN2-EscalationBoundaryEventWithTask.bpmn2
+++
b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/escalation/BPMN2-EscalationBoundaryEventWithTask.bpmn2
@@ -33,7 +33,7 @@
<itemDefinition id="_xItem" structureRef="String" />
<escalation id="escId" escalationCode="Code3" />
- <process processType="Private" isExecutable="true"
id="non-interrupting-escalation" name="Escalation Boundary Event Process" >
+ <process processType="Private" isExecutable="true"
id="EscalationBoundaryEventWithTask" name="Escalation Boundary Event Process"
tns:packageName="org.jbpm.bpmn2.escalation">
<!-- process variables -->
<property id="x" itemSubjectRef="_xItem"/>
@@ -47,7 +47,7 @@
<sequenceFlow id="_2-1-_2-2" sourceRef="_2-1" targetRef="_2-2" />
<intermediateThrowEvent id="_2-2" name="escSub">
- <escalationEventDefinition id="EscalationEventDefinition_2" />
+ <escalationEventDefinition id="EscalationEventDefinition_2"
escalationRef="escId"/>
</intermediateThrowEvent>
<sequenceFlow id="_2-2-_2-3" sourceRef="_2-2" targetRef="_2-3" />
@@ -57,14 +57,16 @@
<endEvent id="_2-4" name="endSub" />
</subProcess>
<sequenceFlow id="_2-_3" sourceRef="_2" targetRef="_3" />
+
+
+ <boundaryEvent id="_4" name="CatchEscalation" attachedToRef="_2"
cancelActivity="false" >
+ <escalationEventDefinition />
+ </boundaryEvent>
+
<endEvent id="_3" name="End" >
<terminateEventDefinition/>
</endEvent>
-
- <boundaryEvent id="_4" name="CatchEscalation" attachedToRef="_2"
cancelActivity="false" >
- <escalationEventDefinition escalationRef="escId" />
- </boundaryEvent>
<sequenceFlow id="_4-_5" sourceRef="_4" targetRef="_5" />
<scriptTask id="_5" name="Goodbye" >
diff --git
a/jbpm/jbpm-tests/src/test/resources/escalation/BPMN2-EventSubprocessEscalation.bpmn2
b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/escalation/BPMN2-EventSubprocessEscalation.bpmn2
similarity index 97%
rename from
jbpm/jbpm-tests/src/test/resources/escalation/BPMN2-EventSubprocessEscalation.bpmn2
rename to
jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/escalation/BPMN2-EventSubprocessEscalation.bpmn2
index 2931fda2dd..17313c09af 100755
---
a/jbpm/jbpm-tests/src/test/resources/escalation/BPMN2-EventSubprocessEscalation.bpmn2
+++
b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/escalation/BPMN2-EventSubprocessEscalation.bpmn2
@@ -20,7 +20,7 @@
<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"
xmlns:di="http://www.omg.org/spec/DD/20100524/DI"
xmlns:tns="http://www.jboss.org/drools"
xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd"
id="Definitions_1" expressionLanguage="http://www.mvel.org/2.0"
targetNamespace="http://w [...]
<bpmn2:escalation id="escId" escalationCode="escCode" />
- <bpmn2:process id="BPMN2-EventSubprocessEscalation" tns:version="1"
tns:packageName="defaultPackage" name="Default Process">
+ <bpmn2:process id="EventSubprocessEscalation" tns:version="1"
tns:packageName="org.jbpm.bpmn2.escalation" name="Default Process">
<bpmn2:startEvent id="StartEvent_1" name="start">
<bpmn2:outgoing>SequenceFlow_2</bpmn2:outgoing>
</bpmn2:startEvent>
diff --git
a/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/escalation/BPMN2-Multiescalation.bpmn2
b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/escalation/BPMN2-Multiescalation.bpmn2
new file mode 100644
index 0000000000..053b00c882
--- /dev/null
+++
b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/escalation/BPMN2-Multiescalation.bpmn2
@@ -0,0 +1,414 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
xmlns:bpsim="http://www.bpsim.org/schemas/1.0"
xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"
xmlns:di="http://www.omg.org/spec/DD/20100524/DI"
xmlns:drools="http://www.jboss.org/drools" id="_4D6UQA-DED2fZdcCquQDuw"
xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd
http://www. [...]
+ <bpmn2:itemDefinition id="_dataItem" structureRef="String"/>
+ <bpmn2:itemDefinition id="_enddataItem" structureRef="String"/>
+ <bpmn2:itemDefinition id="_from_embeddedItem" structureRef="String"/>
+ <bpmn2:itemDefinition id="_embedded_dataItem" structureRef="String"/>
+ <bpmn2:itemDefinition
id="__D45B7BB5-B555-4CED-9812-B26810F92B54_escalation_dataOutputXItem"
structureRef="String"/>
+ <bpmn2:itemDefinition
id="__D36A9FBC-C0A5-4E4D-93DE-154A0CAA3BA6_embedded_dataOutputXItem"
structureRef="String"/>
+ <bpmn2:itemDefinition
id="__A3EA3450-0072-494E-814E-FE79EFCB14C7_dataInputXItem"
structureRef="String"/>
+ <bpmn2:itemDefinition
id="__C0638AB0-B291-4FA3-A23B-32795AADD598_dataInputXItem"
structureRef="String"/>
+ <bpmn2:itemDefinition
id="__98D1ACAF-B077-4259-88D6-A98A8A0BA915_SkippableInputXItem"
structureRef="Object"/>
+ <bpmn2:itemDefinition
id="__98D1ACAF-B077-4259-88D6-A98A8A0BA915_PriorityInputXItem"
structureRef="Object"/>
+ <bpmn2:itemDefinition
id="__98D1ACAF-B077-4259-88D6-A98A8A0BA915_CommentInputXItem"
structureRef="Object"/>
+ <bpmn2:itemDefinition
id="__98D1ACAF-B077-4259-88D6-A98A8A0BA915_DescriptionInputXItem"
structureRef="Object"/>
+ <bpmn2:itemDefinition
id="__98D1ACAF-B077-4259-88D6-A98A8A0BA915_CreatedByInputXItem"
structureRef="Object"/>
+ <bpmn2:itemDefinition
id="__98D1ACAF-B077-4259-88D6-A98A8A0BA915_TaskNameInputXItem"
structureRef="Object"/>
+ <bpmn2:itemDefinition
id="__98D1ACAF-B077-4259-88D6-A98A8A0BA915_GroupIdInputXItem"
structureRef="Object"/>
+ <bpmn2:itemDefinition
id="__98D1ACAF-B077-4259-88D6-A98A8A0BA915_ContentInputXItem"
structureRef="Object"/>
+ <bpmn2:itemDefinition
id="__98D1ACAF-B077-4259-88D6-A98A8A0BA915_NotStartedReassignInputXItem"
structureRef="Object"/>
+ <bpmn2:itemDefinition
id="__98D1ACAF-B077-4259-88D6-A98A8A0BA915_NotCompletedReassignInputXItem"
structureRef="Object"/>
+ <bpmn2:itemDefinition
id="__98D1ACAF-B077-4259-88D6-A98A8A0BA915_NotStartedNotifyInputXItem"
structureRef="Object"/>
+ <bpmn2:itemDefinition
id="__98D1ACAF-B077-4259-88D6-A98A8A0BA915_NotCompletedNotifyInputXItem"
structureRef="Object"/>
+ <bpmn2:escalation id="_-336982627" escalationCode="EMBEDDED_THROWN"/>
+ <bpmn2:escalation id="_-1371661849" escalationCode="START_EMBEDDED"/>
+ <bpmn2:escalation id="_-336982627" escalationCode="EMBEDDED_THROWN"/>
+ <bpmn2:escalation id="_-1371661849" escalationCode="START_EMBEDDED"/>
+ <bpmn2:escalation id="_658585603" escalationCode="START_NEW"/>
+ <bpmn2:collaboration id="_8F84732C-D81B-40D1-BD7C-25D5BA876827"
name="Default Collaboration">
+ <bpmn2:participant id="_37A13228-D3DD-4DDA-8144-EA7E6978F8CE" name="Pool
Participant" processRef="runscalation"/>
+ </bpmn2:collaboration>
+ <bpmn2:process id="MultiEscalation"
drools:packageName="org.jbpm.bpmn2.escalation" drools:version="1.0"
drools:adHoc="false" name="runscalation" isExecutable="true"
processType="Public">
+ <bpmn2:property id="data" itemSubjectRef="_dataItem" name="data"/>
+ <bpmn2:property id="enddata" itemSubjectRef="_enddataItem" name="enddata"/>
+ <bpmn2:property id="from_embedded" itemSubjectRef="_from_embeddedItem"
name="from_embedded"/>
+ <bpmn2:sequenceFlow id="_A0422A4F-E3B8-42C2-8C6F-234CE1780524"
sourceRef="_98D1ACAF-B077-4259-88D6-A98A8A0BA915"
targetRef="_C0F562EA-CAE7-4397-8D0C-268ED31A7692"/>
+ <bpmn2:sequenceFlow id="_7F78C4C4-0339-447F-9B38-BC61BAA82721"
sourceRef="_9C86D45B-37C6-4FD2-B0DF-858427414CF1"
targetRef="_C0638AB0-B291-4FA3-A23B-32795AADD598">
+ <bpmn2:extensionElements>
+ <drools:metaData name="isAutoConnection.target">
+ <drools:metaValue><![CDATA[true]]></drools:metaValue>
+ </drools:metaData>
+ </bpmn2:extensionElements>
+ </bpmn2:sequenceFlow>
+ <bpmn2:sequenceFlow id="_546538EF-7FD3-4F2A-94D7-E6164020D828"
sourceRef="_A1275EC1-2B48-4D5F-8DFF-093E914A429B"
targetRef="_98D1ACAF-B077-4259-88D6-A98A8A0BA915"/>
+ <bpmn2:sequenceFlow id="_62F7D3F8-F64F-4C45-B8B6-F73E3EAA0617"
sourceRef="_A3EA3450-0072-494E-814E-FE79EFCB14C7"
targetRef="_A1275EC1-2B48-4D5F-8DFF-093E914A429B"/>
+ <bpmn2:sequenceFlow id="_6461CD5F-1BBB-4848-AC4C-92780D4EB928"
sourceRef="_B1503FAC-5C99-488C-82C9-5FDE5F343F4B"
targetRef="_A3EA3450-0072-494E-814E-FE79EFCB14C7"/>
+ <bpmn2:sequenceFlow id="_2207CDA7-0D9A-475F-A82F-4F7C00032203"
sourceRef="_6E5D986F-44CC-4285-9D83-FA4B0992D58D"
targetRef="_B1503FAC-5C99-488C-82C9-5FDE5F343F4B"/>
+ <bpmn2:sequenceFlow id="_FDDE6BE2-4698-449E-BD81-C1F984217F59"
sourceRef="_D36A9FBC-C0A5-4E4D-93DE-154A0CAA3BA6"
targetRef="_9C86D45B-37C6-4FD2-B0DF-858427414CF1"/>
+ <bpmn2:endEvent id="_C0F562EA-CAE7-4397-8D0C-268ED31A7692">
+ <bpmn2:incoming>_A0422A4F-E3B8-42C2-8C6F-234CE1780524</bpmn2:incoming>
+ </bpmn2:endEvent>
+ <bpmn2:userTask id="_98D1ACAF-B077-4259-88D6-A98A8A0BA915" name="HT">
+ <bpmn2:extensionElements>
+ <drools:metaData name="elementname">
+ <drools:metaValue><![CDATA[HT]]></drools:metaValue>
+ </drools:metaData>
+ </bpmn2:extensionElements>
+ <bpmn2:incoming>_546538EF-7FD3-4F2A-94D7-E6164020D828</bpmn2:incoming>
+ <bpmn2:outgoing>_A0422A4F-E3B8-42C2-8C6F-234CE1780524</bpmn2:outgoing>
+ <bpmn2:ioSpecification>
+ <bpmn2:dataInput
id="_98D1ACAF-B077-4259-88D6-A98A8A0BA915_TaskNameInputX" drools:dtype="Object"
itemSubjectRef="__98D1ACAF-B077-4259-88D6-A98A8A0BA915_TaskNameInputXItem"
name="TaskName"/>
+ <bpmn2:dataInput
id="_98D1ACAF-B077-4259-88D6-A98A8A0BA915_SkippableInputX"
drools:dtype="Object"
itemSubjectRef="__98D1ACAF-B077-4259-88D6-A98A8A0BA915_SkippableInputXItem"
name="Skippable"/>
+ <bpmn2:inputSet>
+
<bpmn2:dataInputRefs>_98D1ACAF-B077-4259-88D6-A98A8A0BA915_TaskNameInputX</bpmn2:dataInputRefs>
+
<bpmn2:dataInputRefs>_98D1ACAF-B077-4259-88D6-A98A8A0BA915_SkippableInputX</bpmn2:dataInputRefs>
+ </bpmn2:inputSet>
+ </bpmn2:ioSpecification>
+ <bpmn2:dataInputAssociation>
+
<bpmn2:targetRef>_98D1ACAF-B077-4259-88D6-A98A8A0BA915_TaskNameInputX</bpmn2:targetRef>
+ <bpmn2:assignment>
+ <bpmn2:from
xsi:type="bpmn2:tFormalExpression"><![CDATA[Task]]></bpmn2:from>
+ <bpmn2:to
xsi:type="bpmn2:tFormalExpression"><![CDATA[_98D1ACAF-B077-4259-88D6-A98A8A0BA915_TaskNameInputX]]></bpmn2:to>
+ </bpmn2:assignment>
+ </bpmn2:dataInputAssociation>
+ <bpmn2:dataInputAssociation>
+
<bpmn2:targetRef>_98D1ACAF-B077-4259-88D6-A98A8A0BA915_SkippableInputX</bpmn2:targetRef>
+ <bpmn2:assignment>
+ <bpmn2:from
xsi:type="bpmn2:tFormalExpression"><![CDATA[false]]></bpmn2:from>
+ <bpmn2:to
xsi:type="bpmn2:tFormalExpression"><![CDATA[_98D1ACAF-B077-4259-88D6-A98A8A0BA915_SkippableInputX]]></bpmn2:to>
+ </bpmn2:assignment>
+ </bpmn2:dataInputAssociation>
+ <bpmn2:potentialOwner id="_4D8JcA-DED2fZdcCquQDuw">
+ <bpmn2:resourceAssignmentExpression id="_4D8JcQ-DED2fZdcCquQDuw">
+ <bpmn2:formalExpression>jdoe</bpmn2:formalExpression>
+ </bpmn2:resourceAssignmentExpression>
+ </bpmn2:potentialOwner>
+ </bpmn2:userTask>
+ <bpmn2:endEvent id="_C0638AB0-B291-4FA3-A23B-32795AADD598">
+ <bpmn2:incoming>_7F78C4C4-0339-447F-9B38-BC61BAA82721</bpmn2:incoming>
+ <bpmn2:dataInput id="_C0638AB0-B291-4FA3-A23B-32795AADD598_dataInputX"
drools:dtype="String"
itemSubjectRef="__C0638AB0-B291-4FA3-A23B-32795AADD598_dataInputXItem"
name="data"/>
+ <bpmn2:dataInputAssociation>
+ <bpmn2:sourceRef>from_embedded</bpmn2:sourceRef>
+
<bpmn2:targetRef>_C0638AB0-B291-4FA3-A23B-32795AADD598_dataInputX</bpmn2:targetRef>
+ </bpmn2:dataInputAssociation>
+ <bpmn2:inputSet>
+
<bpmn2:dataInputRefs>_C0638AB0-B291-4FA3-A23B-32795AADD598_dataInputX</bpmn2:dataInputRefs>
+ </bpmn2:inputSet>
+ <bpmn2:escalationEventDefinition drools:esccode="START_NEW"
escalationRef="_658585603"/>
+ </bpmn2:endEvent>
+ <bpmn2:scriptTask id="_9C86D45B-37C6-4FD2-B0DF-858427414CF1" name="Before
excalate" scriptFormat="http://www.java.com/java">
+ <bpmn2:extensionElements>
+ <drools:metaData name="elementname">
+ <drools:metaValue><![CDATA[Before escalate]]></drools:metaValue>
+ </drools:metaData>
+ </bpmn2:extensionElements>
+ <bpmn2:incoming>_FDDE6BE2-4698-449E-BD81-C1F984217F59</bpmn2:incoming>
+ <bpmn2:outgoing>_7F78C4C4-0339-447F-9B38-BC61BAA82721</bpmn2:outgoing>
+ <bpmn2:script>System.out.println("Main - going to escalate");
+System.out.println("from_embedded: " + from_embedded);</bpmn2:script>
+ </bpmn2:scriptTask>
+ <bpmn2:scriptTask id="_A1275EC1-2B48-4D5F-8DFF-093E914A429B" name="After
(main)" scriptFormat="http://www.java.com/java">
+ <bpmn2:extensionElements>
+ <drools:metaData name="elementname">
+ <drools:metaValue><![CDATA[After (main)]]></drools:metaValue>
+ </drools:metaData>
+ </bpmn2:extensionElements>
+ <bpmn2:incoming>_62F7D3F8-F64F-4C45-B8B6-F73E3EAA0617</bpmn2:incoming>
+ <bpmn2:outgoing>_546538EF-7FD3-4F2A-94D7-E6164020D828</bpmn2:outgoing>
+ <bpmn2:script>System.out.println("Main - before");</bpmn2:script>
+ </bpmn2:scriptTask>
+ <bpmn2:intermediateThrowEvent id="_A3EA3450-0072-494E-814E-FE79EFCB14C7">
+ <bpmn2:incoming>_6461CD5F-1BBB-4848-AC4C-92780D4EB928</bpmn2:incoming>
+ <bpmn2:outgoing>_62F7D3F8-F64F-4C45-B8B6-F73E3EAA0617</bpmn2:outgoing>
+ <bpmn2:dataInput id="_A3EA3450-0072-494E-814E-FE79EFCB14C7_dataInputX"
drools:dtype="String"
itemSubjectRef="__A3EA3450-0072-494E-814E-FE79EFCB14C7_dataInputXItem"
name="data"/>
+ <bpmn2:dataInputAssociation>
+ <bpmn2:sourceRef>data</bpmn2:sourceRef>
+
<bpmn2:targetRef>_A3EA3450-0072-494E-814E-FE79EFCB14C7_dataInputX</bpmn2:targetRef>
+ </bpmn2:dataInputAssociation>
+ <bpmn2:inputSet>
+
<bpmn2:dataInputRefs>_A3EA3450-0072-494E-814E-FE79EFCB14C7_dataInputX</bpmn2:dataInputRefs>
+ </bpmn2:inputSet>
+ <bpmn2:escalationEventDefinition drools:esccode="START_EMBEDDED"
escalationRef="_-1371661849"/>
+ </bpmn2:intermediateThrowEvent>
+ <bpmn2:scriptTask id="_B1503FAC-5C99-488C-82C9-5FDE5F343F4B" name="Before
(main)" scriptFormat="http://www.java.com/java">
+ <bpmn2:extensionElements>
+ <drools:metaData name="elementname">
+ <drools:metaValue><![CDATA[Before (main)]]></drools:metaValue>
+ </drools:metaData>
+ </bpmn2:extensionElements>
+ <bpmn2:incoming>_2207CDA7-0D9A-475F-A82F-4F7C00032203</bpmn2:incoming>
+ <bpmn2:outgoing>_6461CD5F-1BBB-4848-AC4C-92780D4EB928</bpmn2:outgoing>
+ <bpmn2:script>System.out.println("Main - before");
+System.out.println("Data: " + data);</bpmn2:script>
+ </bpmn2:scriptTask>
+ <bpmn2:startEvent id="_6E5D986F-44CC-4285-9D83-FA4B0992D58D"
name="Start(main)">
+ <bpmn2:extensionElements>
+ <drools:metaData name="elementname">
+ <drools:metaValue><![CDATA[Start(main)]]></drools:metaValue>
+ </drools:metaData>
+ </bpmn2:extensionElements>
+ <bpmn2:outgoing>_2207CDA7-0D9A-475F-A82F-4F7C00032203</bpmn2:outgoing>
+ </bpmn2:startEvent>
+ <bpmn2:subProcess id="_B7B84DB7-E2DE-4EE6-8E00-3AEC0025D5E1"
name="Sub-process" triggeredByEvent="true">
+ <bpmn2:extensionElements>
+ <drools:metaData name="elementname">
+ <drools:metaValue><![CDATA[Sub-process]]></drools:metaValue>
+ </drools:metaData>
+ </bpmn2:extensionElements>
+ <bpmn2:property id="embedded_data" itemSubjectRef="_embedded_dataItem"
name="embedded_data"/>
+ <bpmn2:sequenceFlow id="_F648A8EA-A514-428D-9F0E-FE22D10869AB"
sourceRef="_E0A3C51A-3EFA-4657-B0EA-8E001C35BC01"
targetRef="_8CDFADB2-6478-4405-90DE-2EA6381095F8"/>
+ <bpmn2:sequenceFlow id="_FB7D37EF-2B85-4BF7-AF1F-3B30F641A65F"
sourceRef="_54BD6682-3DA3-408A-B5E0-9E6BC9CF07B7"
targetRef="_E0A3C51A-3EFA-4657-B0EA-8E001C35BC01"/>
+ <bpmn2:sequenceFlow id="_717B70E1-D44A-41B2-BB35-372195C4B8C2"
sourceRef="_6168218E-55E5-4901-9F3E-BEACF78E18B3"
targetRef="_54BD6682-3DA3-408A-B5E0-9E6BC9CF07B7"/>
+ <bpmn2:sequenceFlow id="_D4DDD98E-F8CC-4DE2-A83A-CD98FE0090C9"
sourceRef="_D45B7BB5-B555-4CED-9812-B26810F92B54"
targetRef="_6168218E-55E5-4901-9F3E-BEACF78E18B3"/>
+ <bpmn2:startEvent id="_D45B7BB5-B555-4CED-9812-B26810F92B54" name="Start
(escalation)" isInterrupting="false">
+ <bpmn2:extensionElements>
+ <drools:metaData name="elementname">
+ <drools:metaValue><![CDATA[Start (escalation)]]></drools:metaValue>
+ </drools:metaData>
+ </bpmn2:extensionElements>
+ <bpmn2:outgoing>_D4DDD98E-F8CC-4DE2-A83A-CD98FE0090C9</bpmn2:outgoing>
+ <bpmn2:dataOutput
id="_D45B7BB5-B555-4CED-9812-B26810F92B54_escalation_dataOutputX"
drools:dtype="String"
itemSubjectRef="__D45B7BB5-B555-4CED-9812-B26810F92B54_escalation_dataOutputXItem"
name="escalation_data"/>
+ <bpmn2:dataOutputAssociation>
+
<bpmn2:sourceRef>_D45B7BB5-B555-4CED-9812-B26810F92B54_escalation_dataOutputX</bpmn2:sourceRef>
+ <bpmn2:targetRef>embedded_data</bpmn2:targetRef>
+ </bpmn2:dataOutputAssociation>
+ <bpmn2:outputSet>
+
<bpmn2:dataOutputRefs>_D45B7BB5-B555-4CED-9812-B26810F92B54_escalation_dataOutputX</bpmn2:dataOutputRefs>
+ </bpmn2:outputSet>
+ <bpmn2:escalationEventDefinition drools:esccode="START_EMBEDDED"
escalationRef="_-1371661849"/>
+ </bpmn2:startEvent>
+ <bpmn2:endEvent id="_8CDFADB2-6478-4405-90DE-2EA6381095F8">
+ <bpmn2:incoming>_F648A8EA-A514-428D-9F0E-FE22D10869AB</bpmn2:incoming>
+ </bpmn2:endEvent>
+ <bpmn2:scriptTask id="_E0A3C51A-3EFA-4657-B0EA-8E001C35BC01"
name="After" scriptFormat="http://www.java.com/java">
+ <bpmn2:extensionElements>
+ <drools:metaData name="elementname">
+ <drools:metaValue><![CDATA[After]]></drools:metaValue>
+ </drools:metaData>
+ </bpmn2:extensionElements>
+ <bpmn2:incoming>_FB7D37EF-2B85-4BF7-AF1F-3B30F641A65F</bpmn2:incoming>
+ <bpmn2:outgoing>_F648A8EA-A514-428D-9F0E-FE22D10869AB</bpmn2:outgoing>
+ <bpmn2:script>System.out.println("Embedded - after");</bpmn2:script>
+ </bpmn2:scriptTask>
+ <bpmn2:intermediateThrowEvent id="_54BD6682-3DA3-408A-B5E0-9E6BC9CF07B7">
+ <bpmn2:incoming>_717B70E1-D44A-41B2-BB35-372195C4B8C2</bpmn2:incoming>
+ <bpmn2:outgoing>_FB7D37EF-2B85-4BF7-AF1F-3B30F641A65F</bpmn2:outgoing>
+ <bpmn2:escalationEventDefinition drools:esccode="EMBEDDED_THROWN"
escalationRef="_-336982627"/>
+ </bpmn2:intermediateThrowEvent>
+ <bpmn2:scriptTask id="_6168218E-55E5-4901-9F3E-BEACF78E18B3"
name="Before" scriptFormat="http://www.java.com/java">
+ <bpmn2:extensionElements>
+ <drools:metaData name="elementname">
+ <drools:metaValue><![CDATA[Before]]></drools:metaValue>
+ </drools:metaData>
+ </bpmn2:extensionElements>
+ <bpmn2:incoming>_D4DDD98E-F8CC-4DE2-A83A-CD98FE0090C9</bpmn2:incoming>
+ <bpmn2:outgoing>_717B70E1-D44A-41B2-BB35-372195C4B8C2</bpmn2:outgoing>
+ <bpmn2:script>System.out.println("Embedded - before");
+System.out.println("embedded_data: " + embedded_data);</bpmn2:script>
+ </bpmn2:scriptTask>
+ </bpmn2:subProcess>
+ <bpmn2:boundaryEvent id="_D36A9FBC-C0A5-4E4D-93DE-154A0CAA3BA6"
drools:dockerinfo="275.2857142857143^231|" drools:boundaryca="false"
attachedToRef="_B7B84DB7-E2DE-4EE6-8E00-3AEC0025D5E1" cancelActivity="false">
+ <bpmn2:outgoing>_FDDE6BE2-4698-449E-BD81-C1F984217F59</bpmn2:outgoing>
+ <bpmn2:dataOutput
id="_D36A9FBC-C0A5-4E4D-93DE-154A0CAA3BA6_embedded_dataOutputX"
drools:dtype="String"
itemSubjectRef="__D36A9FBC-C0A5-4E4D-93DE-154A0CAA3BA6_embedded_dataOutputXItem"
name="embedded_data"/>
+ <bpmn2:dataOutputAssociation>
+
<bpmn2:sourceRef>_D36A9FBC-C0A5-4E4D-93DE-154A0CAA3BA6_embedded_dataOutputX</bpmn2:sourceRef>
+ <bpmn2:targetRef>from_embedded</bpmn2:targetRef>
+ </bpmn2:dataOutputAssociation>
+ <bpmn2:outputSet>
+
<bpmn2:dataOutputRefs>_D36A9FBC-C0A5-4E4D-93DE-154A0CAA3BA6_embedded_dataOutputX</bpmn2:dataOutputRefs>
+ </bpmn2:outputSet>
+ <bpmn2:escalationEventDefinition drools:esccode="EMBEDDED_THROWN"
escalationRef="_-336982627"/>
+ </bpmn2:boundaryEvent>
+ </bpmn2:process>
+ <bpmndi:BPMNDiagram>
+ <bpmndi:BPMNPlane bpmnElement="runscalation">
+ <bpmndi:BPMNShape id="shape__B7B84DB7-E2DE-4EE6-8E00-3AEC0025D5E1"
bpmnElement="_B7B84DB7-E2DE-4EE6-8E00-3AEC0025D5E1" isExpanded="true">
+ <dc:Bounds height="259" width="579" x="231" y="334"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="shape__6168218E-55E5-4901-9F3E-BEACF78E18B3"
bpmnElement="_6168218E-55E5-4901-9F3E-BEACF78E18B3">
+ <dc:Bounds height="102" width="154" x="290" y="446"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="shape__54BD6682-3DA3-408A-B5E0-9E6BC9CF07B7"
bpmnElement="_54BD6682-3DA3-408A-B5E0-9E6BC9CF07B7">
+ <dc:Bounds height="56" width="56" x="471" y="469"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="shape__E0A3C51A-3EFA-4657-B0EA-8E001C35BC01"
bpmnElement="_E0A3C51A-3EFA-4657-B0EA-8E001C35BC01">
+ <dc:Bounds height="102" width="154" x="554" y="446"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="shape__8CDFADB2-6478-4405-90DE-2EA6381095F8"
bpmnElement="_8CDFADB2-6478-4405-90DE-2EA6381095F8">
+ <dc:Bounds height="56" width="56" x="738" y="469"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="shape__D45B7BB5-B555-4CED-9812-B26810F92B54"
bpmnElement="_D45B7BB5-B555-4CED-9812-B26810F92B54">
+ <dc:Bounds height="56" width="56" x="340" y="345"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge
id="edge_shape__D45B7BB5-B555-4CED-9812-B26810F92B54_to_shape__6168218E-55E5-4901-9F3E-BEACF78E18B3"
bpmnElement="_D4DDD98E-F8CC-4DE2-A83A-CD98FE0090C9">
+ <di:waypoint x="368" y="373"/>
+ <di:waypoint x="367" y="446"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge
id="edge_shape__6168218E-55E5-4901-9F3E-BEACF78E18B3_to_shape__54BD6682-3DA3-408A-B5E0-9E6BC9CF07B7"
bpmnElement="_717B70E1-D44A-41B2-BB35-372195C4B8C2">
+ <di:waypoint x="367" y="497"/>
+ <di:waypoint x="471" y="497"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge
id="edge_shape__54BD6682-3DA3-408A-B5E0-9E6BC9CF07B7_to_shape__E0A3C51A-3EFA-4657-B0EA-8E001C35BC01"
bpmnElement="_FB7D37EF-2B85-4BF7-AF1F-3B30F641A65F">
+ <di:waypoint x="499" y="497"/>
+ <di:waypoint x="631" y="497"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge
id="edge_shape__E0A3C51A-3EFA-4657-B0EA-8E001C35BC01_to_shape__8CDFADB2-6478-4405-90DE-2EA6381095F8"
bpmnElement="_F648A8EA-A514-428D-9F0E-FE22D10869AB">
+ <di:waypoint x="631" y="497"/>
+ <di:waypoint x="766" y="497"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="shape__D36A9FBC-C0A5-4E4D-93DE-154A0CAA3BA6"
bpmnElement="_D36A9FBC-C0A5-4E4D-93DE-154A0CAA3BA6">
+ <dc:Bounds height="56" width="55.99999999999994" x="506.2857142857143"
y="565"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="shape__6E5D986F-44CC-4285-9D83-FA4B0992D58D"
bpmnElement="_6E5D986F-44CC-4285-9D83-FA4B0992D58D">
+ <dc:Bounds height="56" width="56" x="125" y="163"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="shape__B1503FAC-5C99-488C-82C9-5FDE5F343F4B"
bpmnElement="_B1503FAC-5C99-488C-82C9-5FDE5F343F4B">
+ <dc:Bounds height="102" width="154" x="231" y="140"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="shape__A3EA3450-0072-494E-814E-FE79EFCB14C7"
bpmnElement="_A3EA3450-0072-494E-814E-FE79EFCB14C7">
+ <dc:Bounds height="56" width="56" x="435" y="163"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="shape__A1275EC1-2B48-4D5F-8DFF-093E914A429B"
bpmnElement="_A1275EC1-2B48-4D5F-8DFF-093E914A429B">
+ <dc:Bounds height="102" width="154" x="518" y="140"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="shape__9C86D45B-37C6-4FD2-B0DF-858427414CF1"
bpmnElement="_9C86D45B-37C6-4FD2-B0DF-858427414CF1">
+ <dc:Bounds height="102" width="154" x="457" y="665"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="shape__C0638AB0-B291-4FA3-A23B-32795AADD598"
bpmnElement="_C0638AB0-B291-4FA3-A23B-32795AADD598">
+ <dc:Bounds height="56" width="56" x="745" y="688"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="shape__98D1ACAF-B077-4259-88D6-A98A8A0BA915"
bpmnElement="_98D1ACAF-B077-4259-88D6-A98A8A0BA915">
+ <dc:Bounds height="102" width="154" x="724" y="140"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="shape__C0F562EA-CAE7-4397-8D0C-268ED31A7692"
bpmnElement="_C0F562EA-CAE7-4397-8D0C-268ED31A7692">
+ <dc:Bounds height="56" width="56" x="958" y="163"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge
id="edge_shape__D36A9FBC-C0A5-4E4D-93DE-154A0CAA3BA6_to_shape__9C86D45B-37C6-4FD2-B0DF-858427414CF1"
bpmnElement="_FDDE6BE2-4698-449E-BD81-C1F984217F59">
+ <di:waypoint x="534.2857142857142" y="593"/>
+ <di:waypoint x="534" y="716"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge
id="edge_shape__6E5D986F-44CC-4285-9D83-FA4B0992D58D_to_shape__B1503FAC-5C99-488C-82C9-5FDE5F343F4B"
bpmnElement="_2207CDA7-0D9A-475F-A82F-4F7C00032203">
+ <di:waypoint x="153" y="191"/>
+ <di:waypoint x="231" y="191"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge
id="edge_shape__B1503FAC-5C99-488C-82C9-5FDE5F343F4B_to_shape__A3EA3450-0072-494E-814E-FE79EFCB14C7"
bpmnElement="_6461CD5F-1BBB-4848-AC4C-92780D4EB928">
+ <di:waypoint x="308" y="191"/>
+ <di:waypoint x="463" y="191"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge
id="edge_shape__A3EA3450-0072-494E-814E-FE79EFCB14C7_to_shape__A1275EC1-2B48-4D5F-8DFF-093E914A429B"
bpmnElement="_62F7D3F8-F64F-4C45-B8B6-F73E3EAA0617">
+ <di:waypoint x="463" y="191"/>
+ <di:waypoint x="518" y="191"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge
id="edge_shape__A1275EC1-2B48-4D5F-8DFF-093E914A429B_to_shape__98D1ACAF-B077-4259-88D6-A98A8A0BA915"
bpmnElement="_546538EF-7FD3-4F2A-94D7-E6164020D828">
+ <di:waypoint x="595" y="191"/>
+ <di:waypoint x="801" y="191"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge
id="edge_shape__9C86D45B-37C6-4FD2-B0DF-858427414CF1_to_shape__C0638AB0-B291-4FA3-A23B-32795AADD598"
bpmnElement="_7F78C4C4-0339-447F-9B38-BC61BAA82721">
+ <di:waypoint x="534" y="716"/>
+ <di:waypoint x="822" y="688"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge
id="edge_shape__98D1ACAF-B077-4259-88D6-A98A8A0BA915_to_shape__C0F562EA-CAE7-4397-8D0C-268ED31A7692"
bpmnElement="_A0422A4F-E3B8-42C2-8C6F-234CE1780524">
+ <di:waypoint x="801" y="191"/>
+ <di:waypoint x="986" y="191"/>
+ </bpmndi:BPMNEdge>
+ </bpmndi:BPMNPlane>
+ </bpmndi:BPMNDiagram>
+ <bpmn2:relationship type="BPSimData">
+ <bpmn2:extensionElements>
+ <bpsim:BPSimData>
+ <bpsim:Scenario id="default" name="Simulationscenario">
+ <bpsim:ScenarioParameters/>
+ <bpsim:ElementParameters
elementRef="_6E5D986F-44CC-4285-9D83-FA4B0992D58D">
+ <bpsim:TimeParameters>
+ <bpsim:ProcessingTime>
+ <bpsim:NormalDistribution mean="0" standardDeviation="0"/>
+ </bpsim:ProcessingTime>
+ </bpsim:TimeParameters>
+ </bpsim:ElementParameters>
+ <bpsim:ElementParameters
elementRef="_B1503FAC-5C99-488C-82C9-5FDE5F343F4B">
+ <bpsim:TimeParameters>
+ <bpsim:ProcessingTime>
+ <bpsim:NormalDistribution mean="0" standardDeviation="0"/>
+ </bpsim:ProcessingTime>
+ </bpsim:TimeParameters>
+ <bpsim:ResourceParameters>
+ <bpsim:Availability>
+ <bpsim:FloatingParameter value="0"/>
+ </bpsim:Availability>
+ <bpsim:Quantity>
+ <bpsim:FloatingParameter value="0"/>
+ </bpsim:Quantity>
+ </bpsim:ResourceParameters>
+ <bpsim:CostParameters>
+ <bpsim:UnitCost>
+ <bpsim:FloatingParameter value="0"/>
+ </bpsim:UnitCost>
+ </bpsim:CostParameters>
+ </bpsim:ElementParameters>
+ <bpsim:ElementParameters
elementRef="_A1275EC1-2B48-4D5F-8DFF-093E914A429B">
+ <bpsim:TimeParameters>
+ <bpsim:ProcessingTime>
+ <bpsim:NormalDistribution mean="0" standardDeviation="0"/>
+ </bpsim:ProcessingTime>
+ </bpsim:TimeParameters>
+ <bpsim:ResourceParameters>
+ <bpsim:Availability>
+ <bpsim:FloatingParameter value="0"/>
+ </bpsim:Availability>
+ <bpsim:Quantity>
+ <bpsim:FloatingParameter value="0"/>
+ </bpsim:Quantity>
+ </bpsim:ResourceParameters>
+ <bpsim:CostParameters>
+ <bpsim:UnitCost>
+ <bpsim:FloatingParameter value="0"/>
+ </bpsim:UnitCost>
+ </bpsim:CostParameters>
+ </bpsim:ElementParameters>
+ <bpsim:ElementParameters
elementRef="_9C86D45B-37C6-4FD2-B0DF-858427414CF1">
+ <bpsim:TimeParameters>
+ <bpsim:ProcessingTime>
+ <bpsim:NormalDistribution mean="0" standardDeviation="0"/>
+ </bpsim:ProcessingTime>
+ </bpsim:TimeParameters>
+ <bpsim:ResourceParameters>
+ <bpsim:Availability>
+ <bpsim:FloatingParameter value="0"/>
+ </bpsim:Availability>
+ <bpsim:Quantity>
+ <bpsim:FloatingParameter value="0"/>
+ </bpsim:Quantity>
+ </bpsim:ResourceParameters>
+ <bpsim:CostParameters>
+ <bpsim:UnitCost>
+ <bpsim:FloatingParameter value="0"/>
+ </bpsim:UnitCost>
+ </bpsim:CostParameters>
+ </bpsim:ElementParameters>
+ <bpsim:ElementParameters
elementRef="_98D1ACAF-B077-4259-88D6-A98A8A0BA915">
+ <bpsim:TimeParameters>
+ <bpsim:ProcessingTime>
+ <bpsim:NormalDistribution mean="0" standardDeviation="0"/>
+ </bpsim:ProcessingTime>
+ </bpsim:TimeParameters>
+ <bpsim:ResourceParameters>
+ <bpsim:Availability>
+ <bpsim:FloatingParameter value="0"/>
+ </bpsim:Availability>
+ <bpsim:Quantity>
+ <bpsim:FloatingParameter value="0"/>
+ </bpsim:Quantity>
+ </bpsim:ResourceParameters>
+ <bpsim:CostParameters>
+ <bpsim:UnitCost>
+ <bpsim:FloatingParameter value="0"/>
+ </bpsim:UnitCost>
+ </bpsim:CostParameters>
+ </bpsim:ElementParameters>
+ </bpsim:Scenario>
+ </bpsim:BPSimData>
+ </bpmn2:extensionElements>
+ <bpmn2:source>_4D6UQA-DED2fZdcCquQDuw</bpmn2:source>
+ <bpmn2:target>_4D6UQA-DED2fZdcCquQDuw</bpmn2:target>
+ </bpmn2:relationship>
+</bpmn2:definitions>
\ No newline at end of file
diff --git
a/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/escalation/BPMN2-TopLevelEscalation.bpmn2
b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/escalation/BPMN2-TopLevelEscalation.bpmn2
new file mode 100644
index 0000000000..140b641e69
--- /dev/null
+++
b/jbpm/jbpm-tests/src/test/bpmn/org/jbpm/bpmn2/escalation/BPMN2-TopLevelEscalation.bpmn2
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
xmlns:bpsim="http://www.bpsim.org/schemas/1.0"
xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"
xmlns:di="http://www.omg.org/spec/DD/20100524/DI"
xmlns:drools="http://www.jboss.org/drools" id="_ioNE0A98ED2kMdINZFf-yQ"
xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL BPMN20.xsd
http://www. [...]
+ <bpmn2:itemDefinition id="_dataItem" structureRef="String"/>
+ <bpmn2:itemDefinition
id="__A4C8228C-1359-4663-A82B-4AA1C98C3871_dataOutputXItem"
structureRef="String"/>
+ <bpmn2:itemDefinition
id="__75AFFB28-C6CE-40D8-9DA0-29593E1BB636_SkippableInputXItem"
structureRef="Object"/>
+ <bpmn2:itemDefinition
id="__75AFFB28-C6CE-40D8-9DA0-29593E1BB636_PriorityInputXItem"
structureRef="Object"/>
+ <bpmn2:itemDefinition
id="__75AFFB28-C6CE-40D8-9DA0-29593E1BB636_CommentInputXItem"
structureRef="Object"/>
+ <bpmn2:itemDefinition
id="__75AFFB28-C6CE-40D8-9DA0-29593E1BB636_DescriptionInputXItem"
structureRef="Object"/>
+ <bpmn2:itemDefinition
id="__75AFFB28-C6CE-40D8-9DA0-29593E1BB636_CreatedByInputXItem"
structureRef="Object"/>
+ <bpmn2:itemDefinition
id="__75AFFB28-C6CE-40D8-9DA0-29593E1BB636_TaskNameInputXItem"
structureRef="Object"/>
+ <bpmn2:itemDefinition
id="__75AFFB28-C6CE-40D8-9DA0-29593E1BB636_GroupIdInputXItem"
structureRef="Object"/>
+ <bpmn2:itemDefinition
id="__75AFFB28-C6CE-40D8-9DA0-29593E1BB636_ContentInputXItem"
structureRef="Object"/>
+ <bpmn2:itemDefinition
id="__75AFFB28-C6CE-40D8-9DA0-29593E1BB636_NotStartedReassignInputXItem"
structureRef="Object"/>
+ <bpmn2:itemDefinition
id="__75AFFB28-C6CE-40D8-9DA0-29593E1BB636_NotCompletedReassignInputXItem"
structureRef="Object"/>
+ <bpmn2:itemDefinition
id="__75AFFB28-C6CE-40D8-9DA0-29593E1BB636_NotStartedNotifyInputXItem"
structureRef="Object"/>
+ <bpmn2:itemDefinition
id="__75AFFB28-C6CE-40D8-9DA0-29593E1BB636_NotCompletedNotifyInputXItem"
structureRef="Object"/>
+ <bpmn2:itemDefinition
id="__75AFFB28-C6CE-40D8-9DA0-29593E1BB636_dataInputXItem"
structureRef="String"/>
+ <bpmn2:itemDefinition
id="__75AFFB28-C6CE-40D8-9DA0-29593E1BB636_dataOutputXItem"
structureRef="String"/>
+ <bpmn2:escalation id="_658585603" escalationCode="START_NEW"/>
+ <bpmn2:collaboration id="_A65AF1CE-3E9B-430C-B7E2-7BB89D32788A"
name="Default Collaboration">
+ <bpmn2:participant id="_472C4BC3-AFDF-401C-B83D-211935DBFDFC" name="Pool
Participant" processRef="after"/>
+ </bpmn2:collaboration>
+ <bpmn2:process id="TopLevelEscalation"
drools:packageName="org.jbpm.bpmn2.escalation" drools:version="1.0"
drools:adHoc="false" name="after" isExecutable="true" processType="Public">
+ <bpmn2:property id="data" itemSubjectRef="_dataItem" name="data"/>
+ <bpmn2:sequenceFlow id="_9F387975-3BC6-4C9E-A993-91A84BF8A727"
sourceRef="_75AFFB28-C6CE-40D8-9DA0-29593E1BB636"
targetRef="_6021FBD1-B098-47A9-BB1F-1DF99E90C405"/>
+ <bpmn2:sequenceFlow id="_1B1AE7E4-585B-4DE2-92EE-AEB5FA650595"
sourceRef="_A4C8228C-1359-4663-A82B-4AA1C98C3871"
targetRef="_75AFFB28-C6CE-40D8-9DA0-29593E1BB636"/>
+ <bpmn2:endEvent id="_6021FBD1-B098-47A9-BB1F-1DF99E90C405">
+ <bpmn2:incoming>_9F387975-3BC6-4C9E-A993-91A84BF8A727</bpmn2:incoming>
+ </bpmn2:endEvent>
+ <bpmn2:userTask id="_75AFFB28-C6CE-40D8-9DA0-29593E1BB636" name="Task">
+ <bpmn2:extensionElements>
+ <drools:metaData name="elementname">
+ <drools:metaValue><![CDATA[Task]]></drools:metaValue>
+ </drools:metaData>
+ </bpmn2:extensionElements>
+ <bpmn2:incoming>_1B1AE7E4-585B-4DE2-92EE-AEB5FA650595</bpmn2:incoming>
+ <bpmn2:outgoing>_9F387975-3BC6-4C9E-A993-91A84BF8A727</bpmn2:outgoing>
+ <bpmn2:ioSpecification>
+ <bpmn2:dataInput
id="_75AFFB28-C6CE-40D8-9DA0-29593E1BB636_TaskNameInputX" drools:dtype="Object"
itemSubjectRef="__75AFFB28-C6CE-40D8-9DA0-29593E1BB636_TaskNameInputXItem"
name="TaskName"/>
+ <bpmn2:dataInput id="_75AFFB28-C6CE-40D8-9DA0-29593E1BB636_dataInputX"
drools:dtype="String"
itemSubjectRef="__75AFFB28-C6CE-40D8-9DA0-29593E1BB636_dataInputXItem"
name="data"/>
+ <bpmn2:dataInput
id="_75AFFB28-C6CE-40D8-9DA0-29593E1BB636_SkippableInputX"
drools:dtype="Object"
itemSubjectRef="__75AFFB28-C6CE-40D8-9DA0-29593E1BB636_SkippableInputXItem"
name="Skippable"/>
+ <bpmn2:dataOutput
id="_75AFFB28-C6CE-40D8-9DA0-29593E1BB636_dataOutputX" drools:dtype="String"
itemSubjectRef="__75AFFB28-C6CE-40D8-9DA0-29593E1BB636_dataOutputXItem"
name="data"/>
+ <bpmn2:inputSet>
+
<bpmn2:dataInputRefs>_75AFFB28-C6CE-40D8-9DA0-29593E1BB636_TaskNameInputX</bpmn2:dataInputRefs>
+
<bpmn2:dataInputRefs>_75AFFB28-C6CE-40D8-9DA0-29593E1BB636_dataInputX</bpmn2:dataInputRefs>
+
<bpmn2:dataInputRefs>_75AFFB28-C6CE-40D8-9DA0-29593E1BB636_SkippableInputX</bpmn2:dataInputRefs>
+ </bpmn2:inputSet>
+ <bpmn2:outputSet>
+
<bpmn2:dataOutputRefs>_75AFFB28-C6CE-40D8-9DA0-29593E1BB636_dataOutputX</bpmn2:dataOutputRefs>
+ </bpmn2:outputSet>
+ </bpmn2:ioSpecification>
+ <bpmn2:dataInputAssociation>
+
<bpmn2:targetRef>_75AFFB28-C6CE-40D8-9DA0-29593E1BB636_TaskNameInputX</bpmn2:targetRef>
+ <bpmn2:assignment>
+ <bpmn2:from
xsi:type="bpmn2:tFormalExpression"><![CDATA[Task]]></bpmn2:from>
+ <bpmn2:to
xsi:type="bpmn2:tFormalExpression"><![CDATA[_75AFFB28-C6CE-40D8-9DA0-29593E1BB636_TaskNameInputX]]></bpmn2:to>
+ </bpmn2:assignment>
+ </bpmn2:dataInputAssociation>
+ <bpmn2:dataInputAssociation>
+ <bpmn2:sourceRef>data</bpmn2:sourceRef>
+
<bpmn2:targetRef>_75AFFB28-C6CE-40D8-9DA0-29593E1BB636_dataInputX</bpmn2:targetRef>
+ </bpmn2:dataInputAssociation>
+ <bpmn2:dataInputAssociation>
+
<bpmn2:targetRef>_75AFFB28-C6CE-40D8-9DA0-29593E1BB636_SkippableInputX</bpmn2:targetRef>
+ <bpmn2:assignment>
+ <bpmn2:from
xsi:type="bpmn2:tFormalExpression"><![CDATA[false]]></bpmn2:from>
+ <bpmn2:to
xsi:type="bpmn2:tFormalExpression"><![CDATA[_75AFFB28-C6CE-40D8-9DA0-29593E1BB636_SkippableInputX]]></bpmn2:to>
+ </bpmn2:assignment>
+ </bpmn2:dataInputAssociation>
+ <bpmn2:dataOutputAssociation>
+
<bpmn2:sourceRef>_75AFFB28-C6CE-40D8-9DA0-29593E1BB636_dataOutputX</bpmn2:sourceRef>
+ <bpmn2:targetRef>data</bpmn2:targetRef>
+ </bpmn2:dataOutputAssociation>
+ <bpmn2:potentialOwner id="_ioPhEA98ED2kMdINZFf-yQ">
+ <bpmn2:resourceAssignmentExpression id="_ioPhEQ98ED2kMdINZFf-yQ">
+ <bpmn2:formalExpression>jdoe</bpmn2:formalExpression>
+ </bpmn2:resourceAssignmentExpression>
+ </bpmn2:potentialOwner>
+ </bpmn2:userTask>
+ <bpmn2:startEvent id="_A4C8228C-1359-4663-A82B-4AA1C98C3871">
+ <bpmn2:outgoing>_1B1AE7E4-585B-4DE2-92EE-AEB5FA650595</bpmn2:outgoing>
+ <bpmn2:dataOutput id="_A4C8228C-1359-4663-A82B-4AA1C98C3871_dataOutputX"
drools:dtype="String"
itemSubjectRef="__A4C8228C-1359-4663-A82B-4AA1C98C3871_dataOutputXItem"
name="data"/>
+ <bpmn2:dataOutputAssociation>
+
<bpmn2:sourceRef>_A4C8228C-1359-4663-A82B-4AA1C98C3871_dataOutputX</bpmn2:sourceRef>
+ <bpmn2:targetRef>data</bpmn2:targetRef>
+ </bpmn2:dataOutputAssociation>
+ <bpmn2:outputSet>
+
<bpmn2:dataOutputRefs>_A4C8228C-1359-4663-A82B-4AA1C98C3871_dataOutputX</bpmn2:dataOutputRefs>
+ </bpmn2:outputSet>
+ <bpmn2:escalationEventDefinition drools:esccode="START_NEW"
escalationRef="_658585603"/>
+ </bpmn2:startEvent>
+ </bpmn2:process>
+ <bpmndi:BPMNDiagram>
+ <bpmndi:BPMNPlane bpmnElement="after">
+ <bpmndi:BPMNShape id="shape__A4C8228C-1359-4663-A82B-4AA1C98C3871"
bpmnElement="_A4C8228C-1359-4663-A82B-4AA1C98C3871">
+ <dc:Bounds height="56" width="56" x="105" y="94"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="shape__75AFFB28-C6CE-40D8-9DA0-29593E1BB636"
bpmnElement="_75AFFB28-C6CE-40D8-9DA0-29593E1BB636">
+ <dc:Bounds height="102" width="154" x="241" y="71"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="shape__6021FBD1-B098-47A9-BB1F-1DF99E90C405"
bpmnElement="_6021FBD1-B098-47A9-BB1F-1DF99E90C405">
+ <dc:Bounds height="56" width="56" x="475" y="94"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge
id="edge_shape__A4C8228C-1359-4663-A82B-4AA1C98C3871_to_shape__75AFFB28-C6CE-40D8-9DA0-29593E1BB636"
bpmnElement="_1B1AE7E4-585B-4DE2-92EE-AEB5FA650595">
+ <di:waypoint x="133" y="122"/>
+ <di:waypoint x="318" y="122"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge
id="edge_shape__75AFFB28-C6CE-40D8-9DA0-29593E1BB636_to_shape__6021FBD1-B098-47A9-BB1F-1DF99E90C405"
bpmnElement="_9F387975-3BC6-4C9E-A993-91A84BF8A727">
+ <di:waypoint x="318" y="122"/>
+ <di:waypoint x="503" y="122"/>
+ </bpmndi:BPMNEdge>
+ </bpmndi:BPMNPlane>
+ </bpmndi:BPMNDiagram>
+ <bpmn2:relationship type="BPSimData">
+ <bpmn2:extensionElements>
+ <bpsim:BPSimData>
+ <bpsim:Scenario id="default" name="Simulationscenario">
+ <bpsim:ScenarioParameters/>
+ <bpsim:ElementParameters
elementRef="_A4C8228C-1359-4663-A82B-4AA1C98C3871">
+ <bpsim:TimeParameters>
+ <bpsim:ProcessingTime>
+ <bpsim:NormalDistribution mean="0" standardDeviation="0"/>
+ </bpsim:ProcessingTime>
+ </bpsim:TimeParameters>
+ </bpsim:ElementParameters>
+ <bpsim:ElementParameters
elementRef="_75AFFB28-C6CE-40D8-9DA0-29593E1BB636">
+ <bpsim:TimeParameters>
+ <bpsim:ProcessingTime>
+ <bpsim:NormalDistribution mean="0" standardDeviation="0"/>
+ </bpsim:ProcessingTime>
+ </bpsim:TimeParameters>
+ <bpsim:ResourceParameters>
+ <bpsim:Availability>
+ <bpsim:FloatingParameter value="0"/>
+ </bpsim:Availability>
+ <bpsim:Quantity>
+ <bpsim:FloatingParameter value="0"/>
+ </bpsim:Quantity>
+ </bpsim:ResourceParameters>
+ <bpsim:CostParameters>
+ <bpsim:UnitCost>
+ <bpsim:FloatingParameter value="0"/>
+ </bpsim:UnitCost>
+ </bpsim:CostParameters>
+ </bpsim:ElementParameters>
+ </bpsim:Scenario>
+ </bpsim:BPSimData>
+ </bpmn2:extensionElements>
+ <bpmn2:source>_ioNE0A98ED2kMdINZFf-yQ</bpmn2:source>
+ <bpmn2:target>_ioNE0A98ED2kMdINZFf-yQ</bpmn2:target>
+ </bpmn2:relationship>
+</bpmn2:definitions>
\ No newline at end of file
diff --git
a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/EscalationEventTest.java
b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/EscalationEventTest.java
index cb5420383c..f2f8c232be 100755
--- a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/EscalationEventTest.java
+++ b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/EscalationEventTest.java
@@ -19,22 +19,40 @@
package org.jbpm.bpmn2;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import org.jbpm.bpmn2.escalation.EscalationBoundaryEventWithTaskModel;
+import org.jbpm.bpmn2.escalation.EscalationBoundaryEventWithTaskProcess;
+import org.jbpm.bpmn2.escalation.EventSubprocessEscalationModel;
+import org.jbpm.bpmn2.escalation.EventSubprocessEscalationProcess;
+import org.jbpm.bpmn2.escalation.MultiEscalationModel;
+import org.jbpm.bpmn2.escalation.MultiEscalationProcess;
+import org.jbpm.bpmn2.escalation.TopLevelEscalationModel;
+import org.jbpm.bpmn2.escalation.TopLevelEscalationProcess;
import org.jbpm.bpmn2.objects.TestWorkItemHandler;
+import org.jbpm.test.utils.EventTrackerProcessListener;
+import org.jbpm.test.utils.ProcessTestHelper;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
import org.kie.api.event.process.ProcessNodeLeftEvent;
import org.kie.api.event.process.ProcessNodeTriggeredEvent;
+import org.kie.api.event.process.ProcessStartedEvent;
+import org.kie.api.event.process.SignalEvent;
+import org.kie.api.runtime.process.ProcessInstance;
+import org.kie.kogito.Application;
import org.kie.kogito.internal.process.event.DefaultKogitoProcessEventListener;
import org.kie.kogito.internal.process.event.KogitoProcessEventListener;
import org.kie.kogito.internal.process.runtime.KogitoNodeInstance;
import org.kie.kogito.internal.process.runtime.KogitoProcessInstance;
import org.kie.kogito.internal.process.runtime.KogitoWorkItem;
+import org.kie.kogito.process.impl.Sig;
import static org.assertj.core.api.Assertions.assertThat;
+import static org.jbpm.test.utils.ProcessTestHelper.left;
+import static org.jbpm.test.utils.ProcessTestHelper.triggered;
public class EscalationEventTest extends JbpmBpmn2TestCase {
@@ -62,39 +80,85 @@ public class EscalationEventTest extends JbpmBpmn2TestCase {
};
+ @Test
+ public void testMultiEscalation() throws Exception {
+ Application app = ProcessTestHelper.newApplication();
+ ProcessTestHelper.registerProcessEventListener(app, new
DefaultKogitoProcessEventListener() {
+ @Override
+ public void onSignal(SignalEvent event) {
+ logger.info("on signal {}", event);
+ }
+ });
+ org.kie.kogito.process.Process<MultiEscalationModel> definition =
MultiEscalationProcess.newProcess(app);
+ MultiEscalationModel model = definition.createModel();
+ model.setData("data");
+ model.setEnddata("end_data");
+ org.kie.kogito.process.ProcessInstance<MultiEscalationModel> instance
= definition.createInstance(model);
+ instance.start();
+
assertThat(instance.status()).isEqualTo(org.kie.kogito.process.ProcessInstance.STATE_ABORTED);
+ }
+
+ @Test
+ public void testTopLevelEscalation() throws Exception {
+ Application app = ProcessTestHelper.newApplication();
+ List<String> instances = new ArrayList<>();
+ ProcessTestHelper.registerProcessEventListener(app, new
DefaultKogitoProcessEventListener() {
+ @Override
+ public void beforeProcessStarted(ProcessStartedEvent event) {
+ instances.add(event.getProcessInstance().getId());
+ }
+ });
+ org.kie.kogito.process.Process<TopLevelEscalationModel> definition =
TopLevelEscalationProcess.newProcess(app);
+ TopLevelEscalationModel model = definition.createModel();
+ model.setData("data");
+ definition.send(Sig.of("Escalation-START_NEW", "data"));
+ assertThat(instances).hasSize(1);
+ }
+
@Test
public void testEventSubprocessEscalation() throws Exception {
- kruntime =
createKogitoProcessRuntime("escalation/BPMN2-EventSubprocessEscalation.bpmn2");
final List<String> executednodes = new ArrayList<>();
KogitoProcessEventListener listener = new
DefaultKogitoProcessEventListener() {
@Override
public void afterNodeLeft(ProcessNodeLeftEvent event) {
- if (event.getNodeInstance().getNodeName()
- .equals("Script Task 1")) {
+ if (event.getNodeInstance().getNodeName().equals("Script Task
1")) {
executednodes.add(((KogitoNodeInstance)
event.getNodeInstance()).getStringId());
}
}
};
-
- kruntime.getProcessEventManager().addEventListener(listener);
+ EventTrackerProcessListener tracker = new
EventTrackerProcessListener();
TestWorkItemHandler workItemHandler = new TestWorkItemHandler();
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human
Task",
- workItemHandler);
- KogitoProcessInstance processInstance = kruntime
- .startProcess("BPMN2-EventSubprocessEscalation");
- assertProcessInstanceActive(processInstance);
- kruntime.getProcessEventManager().addEventListener(listener);
+
+ Application app = ProcessTestHelper.newApplication();
+ ProcessTestHelper.registerProcessEventListener(app, listener);
+ ProcessTestHelper.registerProcessEventListener(app, tracker);
+ ProcessTestHelper.registerHandler(app, "Human Task", workItemHandler);
+
+ org.kie.kogito.process.Process<EventSubprocessEscalationModel>
processDefinition = EventSubprocessEscalationProcess.newProcess(app);
+ org.kie.kogito.process.ProcessInstance<EventSubprocessEscalationModel>
instance = processDefinition.createInstance(processDefinition.createModel());
+ instance.start();
+
+ assertThat(instance.status()).isEqualTo(ProcessInstance.STATE_ACTIVE);
KogitoWorkItem workItem = workItemHandler.getWorkItem();
assertThat(workItem).isNotNull();
-
kruntime.getKogitoWorkItemManager().completeWorkItem(workItem.getStringId(),
null);
- assertProcessInstanceFinished(processInstance, kruntime);
- assertNodeTriggered(processInstance.getStringId(), "start", "User Task
1",
- "end", "Sub Process 1", "start-sub", "Script Task 1",
"end-sub");
+
+ ProcessTestHelper.completeWorkItem(instance, "john",
Collections.emptyMap());
+
+
assertThat(instance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
assertThat(executednodes).hasSize(1);
+ assertThat(tracker.tracked())
+ .anyMatch(triggered("start"))
+ .anyMatch(triggered("User Task 1"))
+ .anyMatch(triggered("end"))
+ .anyMatch(left("Sub Process 1"))
+ .anyMatch(left("start-sub"))
+ .anyMatch(triggered("Script Task 1"))
+ .anyMatch(triggered("end-sub"));
+
}
@Test
@@ -135,22 +199,22 @@ public class EscalationEventTest extends
JbpmBpmn2TestCase {
}
@Test
- @Disabled("General escalation is not yet supported.")
- // TODO: implement general escalation
- // TODO: implement asynchronous escalation
public void testGeneralEscalationBoundaryEventWithTask() throws Exception {
- kruntime =
createKogitoProcessRuntime("escalation/BPMN2-EscalationBoundaryEventWithTask.bpmn2");
-
TestWorkItemHandler handler = new TestWorkItemHandler();
- kruntime.getKogitoWorkItemManager().registerWorkItemHandler("Human
Task", handler);
- Map<String, Object> params = new HashMap<>();
- params.put("x", "0");
- KogitoProcessInstance processInstance =
kruntime.startProcess("non-interrupting-escalation", params);
-
kruntime.getKogitoWorkItemManager().completeWorkItem(handler.getWorkItem().getStringId(),
null);
- assertProcessInstanceCompleted(processInstance);
- // Did escalation fire?
- assertProcessVarValue(processInstance, "x", "1");
+ Application app = ProcessTestHelper.newApplication();
+ ProcessTestHelper.registerHandler(app, "Human Task", handler);
+
+ org.kie.kogito.process.Process<EscalationBoundaryEventWithTaskModel>
processDefinition = EscalationBoundaryEventWithTaskProcess.newProcess(app);
+ EscalationBoundaryEventWithTaskModel model =
processDefinition.createModel();
+ model.setX("0");
+
org.kie.kogito.process.ProcessInstance<EscalationBoundaryEventWithTaskModel>
instance = processDefinition.createInstance(model);
+ instance.start();
+ ProcessTestHelper.completeWorkItem(instance, "john",
Collections.emptyMap());
+
+
assertThat(instance.status()).isEqualTo(ProcessInstance.STATE_COMPLETED);
+ assertThat(instance.variables().getX()).isEqualTo("1");
+
}
@Test
diff --git
a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/IntermediateEventTest.java
b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/IntermediateEventTest.java
index 0bfaf312c2..ecf59596cb 100755
--- a/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/IntermediateEventTest.java
+++ b/jbpm/jbpm-tests/src/test/java/org/jbpm/bpmn2/IntermediateEventTest.java
@@ -34,6 +34,8 @@ import
org.jbpm.bpmn2.activity.BoundarySignalEventOnTaskWithTransformationModel;
import
org.jbpm.bpmn2.activity.BoundarySignalEventOnTaskWithTransformationProcess;
import org.jbpm.bpmn2.handler.ReceiveTaskHandler;
import org.jbpm.bpmn2.handler.SendTaskHandler;
+import org.jbpm.bpmn2.intermediate.EventSubprocessErrorSignalEmbeddedModel;
+import org.jbpm.bpmn2.intermediate.EventSubprocessErrorSignalEmbeddedProcess;
import
org.jbpm.bpmn2.intermediate.IntermediateCatchEventMessageWithTransformationModel;
import
org.jbpm.bpmn2.intermediate.IntermediateCatchEventMessageWithTransformationProcess;
import org.jbpm.bpmn2.intermediate.IntermediateCatchEventSignal2Model;
@@ -2351,20 +2353,17 @@ public class IntermediateEventTest extends
JbpmBpmn2TestCase {
@Test
public void testEventSubprocessWithEmbeddedSignals() throws Exception {
- kruntime =
createKogitoProcessRuntime("org/jbpm/bpmn2/intermediate/BPMN2-EventSubprocessErrorSignalEmbedded.bpmn2");
- KogitoProcessInstance processInstance =
kruntime.startProcess("EventSubprocessErrorSignalEmbedded");
-
- assertProcessInstanceActive(processInstance.getStringId(), kruntime);
- assertProcessInstanceActive(processInstance);
- kruntime.signalEvent("signal1", null, processInstance.getStringId());
- assertProcessInstanceActive(processInstance.getStringId(), kruntime);
-
- kruntime.signalEvent("signal2", null, processInstance.getStringId());
- assertProcessInstanceActive(processInstance.getStringId(), kruntime);
-
- kruntime.signalEvent("signal3", null, processInstance.getStringId());
+ Application app = ProcessTestHelper.newApplication();
- assertProcessInstanceFinished(processInstance, kruntime);
+
org.kie.kogito.process.Process<EventSubprocessErrorSignalEmbeddedModel>
definition = EventSubprocessErrorSignalEmbeddedProcess.newProcess(app);
+
org.kie.kogito.process.ProcessInstance<EventSubprocessErrorSignalEmbeddedModel>
instance = definition.createInstance(definition.createModel());
+ instance.start();
+ instance.send(Sig.of("signal1", null));
+
assertThat(instance.status()).isEqualTo(org.kie.kogito.process.ProcessInstance.STATE_ACTIVE);
+ instance.send(Sig.of("signal2", null));
+
assertThat(instance.status()).isEqualTo(org.kie.kogito.process.ProcessInstance.STATE_ACTIVE);
+ instance.send(Sig.of("signal3", null));
+
assertThat(instance.status()).isEqualTo(org.kie.kogito.process.ProcessInstance.STATE_ABORTED);
}
@Test
diff --git
a/jbpm/jbpm-tests/src/test/java/org/jbpm/test/utils/ProcessTestHelper.java
b/jbpm/jbpm-tests/src/test/java/org/jbpm/test/utils/ProcessTestHelper.java
index 6c1d8ac54a..3b9dc1d336 100644
--- a/jbpm/jbpm-tests/src/test/java/org/jbpm/test/utils/ProcessTestHelper.java
+++ b/jbpm/jbpm-tests/src/test/java/org/jbpm/test/utils/ProcessTestHelper.java
@@ -24,6 +24,7 @@ import java.util.function.Consumer;
import java.util.function.Predicate;
import org.kie.api.event.process.ProcessNodeEvent;
+import org.kie.api.event.process.ProcessNodeLeftEvent;
import org.kie.api.event.process.ProcessNodeTriggeredEvent;
import org.kie.kogito.Application;
import org.kie.kogito.Model;
@@ -85,4 +86,9 @@ public class ProcessTestHelper {
};
}
+ public static <T extends ProcessNodeEvent> Predicate<T> left(String
nodeName) {
+ return e -> {
+ return e instanceof ProcessNodeLeftEvent &&
nodeName.equals(((ProcessNodeLeftEvent) e).getNodeInstance().getNodeName());
+ };
+ }
}
diff --git
a/jbpm/jbpm-tools/jbpm-tools-maven-plugin/src/test/resources/unit/project/src/main/bpmn/BPMN2-EventSubprocessErrorSignalEmbedded.bpmn2
b/jbpm/jbpm-tools/jbpm-tools-maven-plugin/src/test/resources/unit/project/src/main/bpmn/BPMN2-EventSubprocessErrorSignalEmbedded.bpmn2
new file mode 100755
index 0000000000..ebafacec5b
--- /dev/null
+++
b/jbpm/jbpm-tools/jbpm-tools-maven-plugin/src/test/resources/unit/project/src/main/bpmn/BPMN2-EventSubprocessErrorSignalEmbedded.bpmn2
@@ -0,0 +1,342 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Licensed to the Apache Software Foundation (ASF) under one
+ ~ or more contributor license agreements. See the NOTICE file
+ ~ distributed with this work for additional information
+ ~ regarding copyright ownership. The ASF licenses this file
+ ~ to you under the Apache License, Version 2.0 (the
+ ~ "License"); you may not use this file except in compliance
+ ~ with the License. You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing,
+ ~ software distributed under the License is distributed on an
+ ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ ~ KIND, either express or implied. See the License for the
+ ~ specific language governing permissions and limitations
+ ~ under the License.
+ -->
+
+<bpmn2:definitions xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://www.omg.org/bpmn20"
xmlns:bpmn2="http://www.omg.org/spec/BPMN/20100524/MODEL"
xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
xmlns:bpsim="http://www.bpsim.org/schemas/1.0"
xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"
xmlns:di="http://www.omg.org/spec/DD/20100524/DI"
xmlns:drools="http://www.jboss.org/drools" id="_pgP6sHTaEeaoApuNXeI-uQ"
xsi:schemaLocation="http://www.omg.org/spec/BPMN/201 [...]
+ <bpmn2:signal id="signal1" name="signal1"/>
+ <bpmn2:signal id="signal2" name="signal2"/>
+ <bpmn2:signal id="signal3" name="signal3"/>
+ <bpmn2:error id="myerrorref" errorCode="myerrorref"/>
+ <bpmn2:process id="EventSubprocessErrorSignalEmbedded"
drools:packageName="org.jbpm.bpmn2.intermediate" drools:version="1.0"
name="myerrorprocess" isExecutable="true">
+ <bpmn2:startEvent id="processStartEvent" drools:bgcolor="#9acd32"
drools:selectable="true" name="">
+ <bpmn2:outgoing>_39010054-5D46-4E8C-A9FA-64E46B4E293A</bpmn2:outgoing>
+ </bpmn2:startEvent>
+ <bpmn2:scriptTask id="_C17A804A-5140-4FF4-9F27-3608B2F8D4A3"
drools:selectable="true" name="Parent Process"
scriptFormat="http://www.java.com/java">
+ <bpmn2:incoming>_39010054-5D46-4E8C-A9FA-64E46B4E293A</bpmn2:incoming>
+ <bpmn2:outgoing>_FCC2871C-1D99-46E5-BE85-294F2F5EC58A</bpmn2:outgoing>
+ <bpmn2:script><![CDATA[System.out.println("Parent process
run...");]]></bpmn2:script>
+ </bpmn2:scriptTask>
+ <bpmn2:sequenceFlow id="_39010054-5D46-4E8C-A9FA-64E46B4E293A"
drools:bgcolor="#000000" drools:selectable="true" sourceRef="processStartEvent"
targetRef="_C17A804A-5140-4FF4-9F27-3608B2F8D4A3"/>
+ <bpmn2:intermediateCatchEvent id="_A55CA959-D4DA-403D-8F0B-2078F58D2DDE"
drools:bgcolor="#f5deb3" drools:selectable="true" drools:bordercolor="#a0522d"
drools:boundaryca="" name="Signal1">
+ <bpmn2:incoming>_FCC2871C-1D99-46E5-BE85-294F2F5EC58A</bpmn2:incoming>
+ <bpmn2:outgoing>_05EE3913-3EAD-424B-92DC-6465CFA11A50</bpmn2:outgoing>
+ <bpmn2:signalEventDefinition id="_pgP6sXTaEeaoApuNXeI-uQ"
signalRef="signal1"/>
+ </bpmn2:intermediateCatchEvent>
+ <bpmn2:sequenceFlow id="_FCC2871C-1D99-46E5-BE85-294F2F5EC58A"
drools:bgcolor="#000000" drools:selectable="true"
sourceRef="_C17A804A-5140-4FF4-9F27-3608B2F8D4A3"
targetRef="_A55CA959-D4DA-403D-8F0B-2078F58D2DDE"/>
+ <bpmn2:endEvent id="_D5BCD39D-61A8-49BA-8AC1-477D27500F0D"
drools:bgcolor="#ff6347" drools:selectable="true" name="">
+ <bpmn2:incoming>_05EE3913-3EAD-424B-92DC-6465CFA11A50</bpmn2:incoming>
+ <bpmn2:errorEventDefinition id="_pgP6snTaEeaoApuNXeI-uQ"
drools:erefname="myerrorref" errorRef="myerrorref"/>
+ </bpmn2:endEvent>
+ <bpmn2:sequenceFlow id="_05EE3913-3EAD-424B-92DC-6465CFA11A50"
drools:bgcolor="#000000" drools:selectable="true"
sourceRef="_A55CA959-D4DA-403D-8F0B-2078F58D2DDE"
targetRef="_D5BCD39D-61A8-49BA-8AC1-477D27500F0D"/>
+ <bpmn2:subProcess id="_AB7869E8-1143-43A1-8F62-EB0FEE4E131D"
drools:bgcolor="#ffffff" drools:selectable="true" name=""
triggeredByEvent="true">
+ <bpmn2:startEvent id="_41A836D9-83C2-4B6B-A2CB-FB392E62C6EA"
drools:bgcolor="#9acd32" drools:selectable="true" name="">
+ <bpmn2:outgoing>_87AD2D24-CFFC-4352-BC76-DA18AE611768</bpmn2:outgoing>
+ <bpmn2:errorEventDefinition id="_pgP6s3TaEeaoApuNXeI-uQ"
drools:erefname="myerrorref" errorRef="myerrorref"/>
+ </bpmn2:startEvent>
+ <bpmn2:scriptTask id="_9C6C7F2A-9459-40DE-9675-DDA5CB1A0CD6"
drools:selectable="true" name="Script1" scriptFormat="http://www.java.com/java">
+ <bpmn2:incoming>_87AD2D24-CFFC-4352-BC76-DA18AE611768</bpmn2:incoming>
+ <bpmn2:outgoing>_4099F2E8-745B-4C8A-81F5-177D8B3D09A3</bpmn2:outgoing>
+ <bpmn2:script><![CDATA[System.out.println("Script1
run...");]]></bpmn2:script>
+ </bpmn2:scriptTask>
+ <bpmn2:intermediateCatchEvent id="_9BE0054F-3EA1-415D-80F5-3DB0770FA1C0"
drools:bgcolor="#f5deb3" drools:selectable="true" drools:bordercolor="#a0522d"
drools:boundaryca="" name="Sub-signal1">
+ <bpmn2:incoming>_4099F2E8-745B-4C8A-81F5-177D8B3D09A3</bpmn2:incoming>
+ <bpmn2:outgoing>_C970DF27-4230-4477-9D81-0C34636CE8BB</bpmn2:outgoing>
+ <bpmn2:signalEventDefinition id="_pgP6tHTaEeaoApuNXeI-uQ"
signalRef="signal2"/>
+ </bpmn2:intermediateCatchEvent>
+ <bpmn2:scriptTask id="_87B4E535-4BA2-4F83-9F9A-CD147B67C6DE"
drools:selectable="true" name="Script2" scriptFormat="http://www.java.com/java">
+ <bpmn2:incoming>_C970DF27-4230-4477-9D81-0C34636CE8BB</bpmn2:incoming>
+ <bpmn2:outgoing>_52E875AC-A9EA-41CF-A168-3C02CEB2AA06</bpmn2:outgoing>
+ <bpmn2:script><![CDATA[System.out.println("Script2
run...");]]></bpmn2:script>
+ </bpmn2:scriptTask>
+ <bpmn2:intermediateCatchEvent id="_EAB2BE48-6748-4C2E-91E1-D27C080E96FA"
drools:bgcolor="#f5deb3" drools:selectable="true" drools:bordercolor="#a0522d"
drools:boundaryca="" name="Sub-signal2">
+ <bpmn2:incoming>_52E875AC-A9EA-41CF-A168-3C02CEB2AA06</bpmn2:incoming>
+ <bpmn2:outgoing>_AA209FC7-33F3-483C-ABAB-541246AD4445</bpmn2:outgoing>
+ <bpmn2:signalEventDefinition id="_pgP6tXTaEeaoApuNXeI-uQ"
signalRef="signal3"/>
+ </bpmn2:intermediateCatchEvent>
+ <bpmn2:endEvent id="_BCAF7A70-3871-44F5-9E24-1A87D436FF93"
drools:bgcolor="#ff6347" drools:selectable="true" name="">
+ <bpmn2:incoming>_AA209FC7-33F3-483C-ABAB-541246AD4445</bpmn2:incoming>
+ </bpmn2:endEvent>
+ <bpmn2:sequenceFlow id="_87AD2D24-CFFC-4352-BC76-DA18AE611768"
drools:bgcolor="#000000" drools:selectable="true"
sourceRef="_41A836D9-83C2-4B6B-A2CB-FB392E62C6EA"
targetRef="_9C6C7F2A-9459-40DE-9675-DDA5CB1A0CD6"/>
+ <bpmn2:sequenceFlow id="_4099F2E8-745B-4C8A-81F5-177D8B3D09A3"
drools:bgcolor="#000000" drools:selectable="true"
sourceRef="_9C6C7F2A-9459-40DE-9675-DDA5CB1A0CD6"
targetRef="_9BE0054F-3EA1-415D-80F5-3DB0770FA1C0"/>
+ <bpmn2:sequenceFlow id="_C970DF27-4230-4477-9D81-0C34636CE8BB"
drools:bgcolor="#000000" drools:selectable="true"
sourceRef="_9BE0054F-3EA1-415D-80F5-3DB0770FA1C0"
targetRef="_87B4E535-4BA2-4F83-9F9A-CD147B67C6DE"/>
+ <bpmn2:sequenceFlow id="_52E875AC-A9EA-41CF-A168-3C02CEB2AA06"
drools:bgcolor="#000000" drools:selectable="true"
sourceRef="_87B4E535-4BA2-4F83-9F9A-CD147B67C6DE"
targetRef="_EAB2BE48-6748-4C2E-91E1-D27C080E96FA"/>
+ <bpmn2:sequenceFlow id="_AA209FC7-33F3-483C-ABAB-541246AD4445"
drools:bgcolor="#000000" drools:selectable="true"
sourceRef="_EAB2BE48-6748-4C2E-91E1-D27C080E96FA"
targetRef="_BCAF7A70-3871-44F5-9E24-1A87D436FF93"/>
+ </bpmn2:subProcess>
+ </bpmn2:process>
+ <bpmndi:BPMNDiagram id="_pgP6tnTaEeaoApuNXeI-uQ">
+ <bpmndi:BPMNPlane id="_pgP6t3TaEeaoApuNXeI-uQ"
bpmnElement="project2.myerrorprocess">
+ <bpmndi:BPMNShape id="_pgP6uHTaEeaoApuNXeI-uQ"
bpmnElement="processStartEvent">
+ <dc:Bounds height="30.0" width="30.0" x="120.0" y="165.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="_pgP6uXTaEeaoApuNXeI-uQ"
bpmnElement="_C17A804A-5140-4FF4-9F27-3608B2F8D4A3">
+ <dc:Bounds height="80.0" width="100.0" x="195.0" y="140.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="_pgP6unTaEeaoApuNXeI-uQ"
bpmnElement="_39010054-5D46-4E8C-A9FA-64E46B4E293A">
+ <di:waypoint xsi:type="dc:Point" x="135.0" y="180.0"/>
+ <di:waypoint xsi:type="dc:Point" x="245.0" y="180.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="_pgP6u3TaEeaoApuNXeI-uQ"
bpmnElement="_A55CA959-D4DA-403D-8F0B-2078F58D2DDE">
+ <dc:Bounds height="30.0" width="30.0" x="339.0" y="165.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="_pgP6vHTaEeaoApuNXeI-uQ"
bpmnElement="_FCC2871C-1D99-46E5-BE85-294F2F5EC58A">
+ <di:waypoint xsi:type="dc:Point" x="245.0" y="180.0"/>
+ <di:waypoint xsi:type="dc:Point" x="354.0" y="180.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="_pgP6vXTaEeaoApuNXeI-uQ"
bpmnElement="_D5BCD39D-61A8-49BA-8AC1-477D27500F0D">
+ <dc:Bounds height="28.0" width="28.0" x="431.0" y="166.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="_pgQhwHTaEeaoApuNXeI-uQ"
bpmnElement="_05EE3913-3EAD-424B-92DC-6465CFA11A50">
+ <di:waypoint xsi:type="dc:Point" x="354.0" y="180.0"/>
+ <di:waypoint xsi:type="dc:Point" x="445.0" y="180.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNShape id="_pgQhwXTaEeaoApuNXeI-uQ"
bpmnElement="_AB7869E8-1143-43A1-8F62-EB0FEE4E131D">
+ <dc:Bounds height="169.0" width="595.0" x="75.0" y="255.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="_pgQhwnTaEeaoApuNXeI-uQ"
bpmnElement="_41A836D9-83C2-4B6B-A2CB-FB392E62C6EA">
+ <dc:Bounds height="30.0" width="30.0" x="90.0" y="321.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="_pgQhw3TaEeaoApuNXeI-uQ"
bpmnElement="_9C6C7F2A-9459-40DE-9675-DDA5CB1A0CD6">
+ <dc:Bounds height="80.0" width="100.0" x="165.0" y="296.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="_pgQhxHTaEeaoApuNXeI-uQ"
bpmnElement="_9BE0054F-3EA1-415D-80F5-3DB0770FA1C0">
+ <dc:Bounds height="30.0" width="30.0" x="315.0" y="321.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="_pgQhxXTaEeaoApuNXeI-uQ"
bpmnElement="_87B4E535-4BA2-4F83-9F9A-CD147B67C6DE">
+ <dc:Bounds height="80.0" width="100.0" x="395.0" y="296.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="_pgQhxnTaEeaoApuNXeI-uQ"
bpmnElement="_EAB2BE48-6748-4C2E-91E1-D27C080E96FA">
+ <dc:Bounds height="30.0" width="30.0" x="525.0" y="321.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNShape id="_pgQhx3TaEeaoApuNXeI-uQ"
bpmnElement="_BCAF7A70-3871-44F5-9E24-1A87D436FF93">
+ <dc:Bounds height="28.0" width="28.0" x="600.0" y="323.0"/>
+ </bpmndi:BPMNShape>
+ <bpmndi:BPMNEdge id="_pgQhyHTaEeaoApuNXeI-uQ"
bpmnElement="_87AD2D24-CFFC-4352-BC76-DA18AE611768">
+ <di:waypoint xsi:type="dc:Point" x="30.0" y="81.0"/>
+ <di:waypoint xsi:type="dc:Point" x="140.0" y="81.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="_pgQhyXTaEeaoApuNXeI-uQ"
bpmnElement="_4099F2E8-745B-4C8A-81F5-177D8B3D09A3">
+ <di:waypoint xsi:type="dc:Point" x="140.0" y="81.0"/>
+ <di:waypoint xsi:type="dc:Point" x="255.0" y="81.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="_pgQhynTaEeaoApuNXeI-uQ"
bpmnElement="_C970DF27-4230-4477-9D81-0C34636CE8BB">
+ <di:waypoint xsi:type="dc:Point" x="255.0" y="81.0"/>
+ <di:waypoint xsi:type="dc:Point" x="370.0" y="81.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="_pgQhy3TaEeaoApuNXeI-uQ"
bpmnElement="_52E875AC-A9EA-41CF-A168-3C02CEB2AA06">
+ <di:waypoint xsi:type="dc:Point" x="370.0" y="81.0"/>
+ <di:waypoint xsi:type="dc:Point" x="465.0" y="81.0"/>
+ </bpmndi:BPMNEdge>
+ <bpmndi:BPMNEdge id="_pgQhzHTaEeaoApuNXeI-uQ"
bpmnElement="_AA209FC7-33F3-483C-ABAB-541246AD4445">
+ <di:waypoint xsi:type="dc:Point" x="465.0" y="81.0"/>
+ <di:waypoint xsi:type="dc:Point" x="577.0" y="336.0"/>
+ <di:waypoint xsi:type="dc:Point" x="577.0" y="337.0"/>
+ <di:waypoint xsi:type="dc:Point" x="539.0" y="82.0"/>
+ </bpmndi:BPMNEdge>
+ </bpmndi:BPMNPlane>
+ </bpmndi:BPMNDiagram>
+ <bpmn2:relationship id="_pgQhzXTaEeaoApuNXeI-uQ" type="BPSimData">
+ <bpmn2:extensionElements>
+ <bpsim:BPSimData>
+ <bpsim:Scenario xsi:type="bpsim:Scenario" id="default"
name="Simulationscenario">
+ <bpsim:ScenarioParameters xsi:type="bpsim:ScenarioParameters"
baseTimeUnit="min"/>
+ <bpsim:ElementParameters xsi:type="bpsim:ElementParameters"
elementRef="_39010054-5D46-4E8C-A9FA-64E46B4E293A" id="_pgQhznTaEeaoApuNXeI-uQ">
+ <bpsim:ControlParameters xsi:type="bpsim:ControlParameters">
+ <bpsim:Probability xsi:type="bpsim:Parameter">
+ <bpsim:FloatingParameter value="100.0"/>
+ </bpsim:Probability>
+ </bpsim:ControlParameters>
+ </bpsim:ElementParameters>
+ <bpsim:ElementParameters xsi:type="bpsim:ElementParameters"
elementRef="_AA209FC7-33F3-483C-ABAB-541246AD4445" id="_pgQhz3TaEeaoApuNXeI-uQ">
+ <bpsim:ControlParameters xsi:type="bpsim:ControlParameters">
+ <bpsim:Probability xsi:type="bpsim:Parameter">
+ <bpsim:FloatingParameter value="100.0"/>
+ </bpsim:Probability>
+ </bpsim:ControlParameters>
+ </bpsim:ElementParameters>
+ <bpsim:ElementParameters xsi:type="bpsim:ElementParameters"
elementRef="_87AD2D24-CFFC-4352-BC76-DA18AE611768" id="_pgQh0HTaEeaoApuNXeI-uQ">
+ <bpsim:ControlParameters xsi:type="bpsim:ControlParameters">
+ <bpsim:Probability xsi:type="bpsim:Parameter">
+ <bpsim:FloatingParameter value="100.0"/>
+ </bpsim:Probability>
+ </bpsim:ControlParameters>
+ </bpsim:ElementParameters>
+ <bpsim:ElementParameters xsi:type="bpsim:ElementParameters"
elementRef="_4099F2E8-745B-4C8A-81F5-177D8B3D09A3" id="_pgQh0XTaEeaoApuNXeI-uQ">
+ <bpsim:ControlParameters xsi:type="bpsim:ControlParameters">
+ <bpsim:Probability xsi:type="bpsim:Parameter">
+ <bpsim:FloatingParameter value="100.0"/>
+ </bpsim:Probability>
+ </bpsim:ControlParameters>
+ </bpsim:ElementParameters>
+ <bpsim:ElementParameters xsi:type="bpsim:ElementParameters"
elementRef="_FCC2871C-1D99-46E5-BE85-294F2F5EC58A" id="_pgQh0nTaEeaoApuNXeI-uQ">
+ <bpsim:ControlParameters xsi:type="bpsim:ControlParameters">
+ <bpsim:Probability xsi:type="bpsim:Parameter">
+ <bpsim:FloatingParameter value="100.0"/>
+ </bpsim:Probability>
+ </bpsim:ControlParameters>
+ </bpsim:ElementParameters>
+ <bpsim:ElementParameters xsi:type="bpsim:ElementParameters"
elementRef="_87B4E535-4BA2-4F83-9F9A-CD147B67C6DE" id="_pgQh03TaEeaoApuNXeI-uQ">
+ <bpsim:TimeParameters xsi:type="bpsim:TimeParameters">
+ <bpsim:ProcessingTime xsi:type="bpsim:Parameter">
+ <bpsim:UniformDistribution max="10.0" min="5.0"/>
+ </bpsim:ProcessingTime>
+ </bpsim:TimeParameters>
+ <bpsim:CostParameters xsi:type="bpsim:CostParameters">
+ <bpsim:UnitCost xsi:type="bpsim:Parameter">
+ <bpsim:FloatingParameter value="0.0"/>
+ </bpsim:UnitCost>
+ </bpsim:CostParameters>
+ </bpsim:ElementParameters>
+ <bpsim:ElementParameters xsi:type="bpsim:ElementParameters"
elementRef="_52E875AC-A9EA-41CF-A168-3C02CEB2AA06" id="_pgQh1HTaEeaoApuNXeI-uQ">
+ <bpsim:ControlParameters xsi:type="bpsim:ControlParameters">
+ <bpsim:Probability xsi:type="bpsim:Parameter">
+ <bpsim:FloatingParameter value="100.0"/>
+ </bpsim:Probability>
+ </bpsim:ControlParameters>
+ </bpsim:ElementParameters>
+ <bpsim:ElementParameters xsi:type="bpsim:ElementParameters"
elementRef="_D5BCD39D-61A8-49BA-8AC1-477D27500F0D" id="_pgQh1XTaEeaoApuNXeI-uQ">
+ <bpsim:TimeParameters xsi:type="bpsim:TimeParameters">
+ <bpsim:ProcessingTime xsi:type="bpsim:Parameter">
+ <bpsim:UniformDistribution max="10.0" min="5.0"/>
+ </bpsim:ProcessingTime>
+ </bpsim:TimeParameters>
+ </bpsim:ElementParameters>
+ <bpsim:ElementParameters xsi:type="bpsim:ElementParameters"
elementRef="_9C6C7F2A-9459-40DE-9675-DDA5CB1A0CD6" id="_pgQh1nTaEeaoApuNXeI-uQ">
+ <bpsim:TimeParameters xsi:type="bpsim:TimeParameters">
+ <bpsim:ProcessingTime xsi:type="bpsim:Parameter">
+ <bpsim:UniformDistribution max="10.0" min="5.0"/>
+ </bpsim:ProcessingTime>
+ </bpsim:TimeParameters>
+ <bpsim:CostParameters xsi:type="bpsim:CostParameters">
+ <bpsim:UnitCost xsi:type="bpsim:Parameter">
+ <bpsim:FloatingParameter value="0.0"/>
+ </bpsim:UnitCost>
+ </bpsim:CostParameters>
+ </bpsim:ElementParameters>
+ <bpsim:ElementParameters xsi:type="bpsim:ElementParameters"
elementRef="_C17A804A-5140-4FF4-9F27-3608B2F8D4A3" id="_pgQh13TaEeaoApuNXeI-uQ">
+ <bpsim:TimeParameters xsi:type="bpsim:TimeParameters">
+ <bpsim:ProcessingTime xsi:type="bpsim:Parameter">
+ <bpsim:UniformDistribution max="10.0" min="5.0"/>
+ </bpsim:ProcessingTime>
+ </bpsim:TimeParameters>
+ <bpsim:CostParameters xsi:type="bpsim:CostParameters">
+ <bpsim:UnitCost xsi:type="bpsim:Parameter">
+ <bpsim:FloatingParameter value="0.0"/>
+ </bpsim:UnitCost>
+ </bpsim:CostParameters>
+ </bpsim:ElementParameters>
+ <bpsim:ElementParameters xsi:type="bpsim:ElementParameters"
elementRef="_AB7869E8-1143-43A1-8F62-EB0FEE4E131D" id="_pgQh2HTaEeaoApuNXeI-uQ">
+ <bpsim:TimeParameters xsi:type="bpsim:TimeParameters">
+ <bpsim:ProcessingTime xsi:type="bpsim:Parameter">
+ <bpsim:UniformDistribution max="10.0" min="5.0"/>
+ </bpsim:ProcessingTime>
+ </bpsim:TimeParameters>
+ <bpsim:CostParameters xsi:type="bpsim:CostParameters">
+ <bpsim:UnitCost xsi:type="bpsim:Parameter">
+ <bpsim:FloatingParameter value="0.0"/>
+ </bpsim:UnitCost>
+ </bpsim:CostParameters>
+ </bpsim:ElementParameters>
+ <bpsim:ElementParameters xsi:type="bpsim:ElementParameters"
elementRef="_EAB2BE48-6748-4C2E-91E1-D27C080E96FA" id="_pgQh2XTaEeaoApuNXeI-uQ">
+ <bpsim:TimeParameters xsi:type="bpsim:TimeParameters">
+ <bpsim:ProcessingTime xsi:type="bpsim:Parameter">
+ <bpsim:UniformDistribution max="10.0" min="5.0"/>
+ </bpsim:ProcessingTime>
+ </bpsim:TimeParameters>
+ <bpsim:ControlParameters xsi:type="bpsim:ControlParameters">
+ <bpsim:Probability xsi:type="bpsim:Parameter">
+ <bpsim:FloatingParameter value="100.0"/>
+ </bpsim:Probability>
+ </bpsim:ControlParameters>
+ </bpsim:ElementParameters>
+ <bpsim:ElementParameters xsi:type="bpsim:ElementParameters"
elementRef="_C970DF27-4230-4477-9D81-0C34636CE8BB" id="_pgQh2nTaEeaoApuNXeI-uQ">
+ <bpsim:ControlParameters xsi:type="bpsim:ControlParameters">
+ <bpsim:Probability xsi:type="bpsim:Parameter">
+ <bpsim:FloatingParameter value="100.0"/>
+ </bpsim:Probability>
+ </bpsim:ControlParameters>
+ </bpsim:ElementParameters>
+ <bpsim:ElementParameters xsi:type="bpsim:ElementParameters"
elementRef="_41A836D9-83C2-4B6B-A2CB-FB392E62C6EA" id="_pgQh23TaEeaoApuNXeI-uQ">
+ <bpsim:TimeParameters xsi:type="bpsim:TimeParameters">
+ <bpsim:ProcessingTime xsi:type="bpsim:Parameter">
+ <bpsim:UniformDistribution max="10.0" min="5.0"/>
+ </bpsim:ProcessingTime>
+ </bpsim:TimeParameters>
+ <bpsim:ControlParameters xsi:type="bpsim:ControlParameters">
+ <bpsim:Probability xsi:type="bpsim:Parameter">
+ <bpsim:FloatingParameter value="100.0"/>
+ </bpsim:Probability>
+ </bpsim:ControlParameters>
+ </bpsim:ElementParameters>
+ <bpsim:ElementParameters xsi:type="bpsim:ElementParameters"
elementRef="_BCAF7A70-3871-44F5-9E24-1A87D436FF93" id="_pgQh3HTaEeaoApuNXeI-uQ">
+ <bpsim:TimeParameters xsi:type="bpsim:TimeParameters">
+ <bpsim:ProcessingTime xsi:type="bpsim:Parameter">
+ <bpsim:UniformDistribution max="10.0" min="5.0"/>
+ </bpsim:ProcessingTime>
+ </bpsim:TimeParameters>
+ </bpsim:ElementParameters>
+ <bpsim:ElementParameters xsi:type="bpsim:ElementParameters"
elementRef="processStartEvent" id="_pgQh3XTaEeaoApuNXeI-uQ">
+ <bpsim:TimeParameters xsi:type="bpsim:TimeParameters">
+ <bpsim:ProcessingTime xsi:type="bpsim:Parameter">
+ <bpsim:UniformDistribution max="10.0" min="5.0"/>
+ </bpsim:ProcessingTime>
+ </bpsim:TimeParameters>
+ <bpsim:ControlParameters xsi:type="bpsim:ControlParameters">
+ <bpsim:Probability xsi:type="bpsim:Parameter">
+ <bpsim:FloatingParameter value="100.0"/>
+ </bpsim:Probability>
+ </bpsim:ControlParameters>
+ </bpsim:ElementParameters>
+ <bpsim:ElementParameters xsi:type="bpsim:ElementParameters"
elementRef="_05EE3913-3EAD-424B-92DC-6465CFA11A50" id="_pgQh3nTaEeaoApuNXeI-uQ">
+ <bpsim:ControlParameters xsi:type="bpsim:ControlParameters">
+ <bpsim:Probability xsi:type="bpsim:Parameter">
+ <bpsim:FloatingParameter value="100.0"/>
+ </bpsim:Probability>
+ </bpsim:ControlParameters>
+ </bpsim:ElementParameters>
+ <bpsim:ElementParameters xsi:type="bpsim:ElementParameters"
elementRef="_9BE0054F-3EA1-415D-80F5-3DB0770FA1C0" id="_pgQh33TaEeaoApuNXeI-uQ">
+ <bpsim:TimeParameters xsi:type="bpsim:TimeParameters">
+ <bpsim:ProcessingTime xsi:type="bpsim:Parameter">
+ <bpsim:UniformDistribution max="10.0" min="5.0"/>
+ </bpsim:ProcessingTime>
+ </bpsim:TimeParameters>
+ <bpsim:ControlParameters xsi:type="bpsim:ControlParameters">
+ <bpsim:Probability xsi:type="bpsim:Parameter">
+ <bpsim:FloatingParameter value="100.0"/>
+ </bpsim:Probability>
+ </bpsim:ControlParameters>
+ </bpsim:ElementParameters>
+ <bpsim:ElementParameters xsi:type="bpsim:ElementParameters"
elementRef="_A55CA959-D4DA-403D-8F0B-2078F58D2DDE" id="_pgQh4HTaEeaoApuNXeI-uQ">
+ <bpsim:TimeParameters xsi:type="bpsim:TimeParameters">
+ <bpsim:ProcessingTime xsi:type="bpsim:Parameter">
+ <bpsim:UniformDistribution max="10.0" min="5.0"/>
+ </bpsim:ProcessingTime>
+ </bpsim:TimeParameters>
+ <bpsim:ControlParameters xsi:type="bpsim:ControlParameters">
+ <bpsim:Probability xsi:type="bpsim:Parameter">
+ <bpsim:FloatingParameter value="100.0"/>
+ </bpsim:Probability>
+ </bpsim:ControlParameters>
+ </bpsim:ElementParameters>
+ </bpsim:Scenario>
+ </bpsim:BPSimData>
+ </bpmn2:extensionElements>
+ <bpmn2:source>_pgP6sHTaEeaoApuNXeI-uQ</bpmn2:source>
+ <bpmn2:target>_pgP6sHTaEeaoApuNXeI-uQ</bpmn2:target>
+ </bpmn2:relationship>
+</bpmn2:definitions>
\ No newline at end of file
diff --git
a/jbpm/jbpm-tools/jbpm-tools-maven-plugin/src/test/resources/unit/project/src/main/bpmn/BPMN2-IntermediateThrowEventMessageWithTransformation.bpmn2
b/jbpm/jbpm-tools/jbpm-tools-maven-plugin/src/test/resources/unit/project/src/main/bpmn/BPMN2-IntermediateThrowEventMessageWithTransformation.bpmn2
deleted file mode 100755
index bc22ee935a..0000000000
---
a/jbpm/jbpm-tools/jbpm-tools-maven-plugin/src/test/resources/unit/project/src/main/bpmn/BPMN2-IntermediateThrowEventMessageWithTransformation.bpmn2
+++ /dev/null
@@ -1,87 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- ~ Licensed to the Apache Software Foundation (ASF) under one
- ~ or more contributor license agreements. See the NOTICE file
- ~ distributed with this work for additional information
- ~ regarding copyright ownership. The ASF licenses this file
- ~ to you under the Apache License, Version 2.0 (the
- ~ "License"); you may not use this file except in compliance
- ~ with the License. You may obtain a copy of the License at
- ~
- ~ http://www.apache.org/licenses/LICENSE-2.0
- ~
- ~ Unless required by applicable law or agreed to in writing,
- ~ software distributed under the License is distributed on an
- ~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- ~ KIND, either express or implied. See the License for the
- ~ specific language governing permissions and limitations
- ~ under the License.
- -->
-
-<definitions id="Definition"
- targetNamespace="http://www.example.org/MinimalExample"
- typeLanguage="http://www.java.com/javaTypes"
- expressionLanguage="http://www.mvel.org/2.0"
- xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.omg.org/spec/BPMN/20100524/MODEL
BPMN20.xsd"
- xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI"
- xmlns:dc="http://www.omg.org/spec/DD/20100524/DC"
- xmlns:di="http://www.omg.org/spec/DD/20100524/DI"
- xmlns:tns="http://www.jboss.org/drools">
-
- <itemDefinition id="_xItem" structureRef="String" />
-
- <itemDefinition id="_2_MessageType" structureRef="String" />
- <message id="_2_Message" itemRef="_2_MessageType" />
-
- <process processType="Private" isExecutable="true"
id="IntermediateThrowEventMessageWithTransformation"
tns:packageName="org.jbpm.bpmn2.intermediate" name="Message Intermediate Throw
Event Process" >
-
- <!-- process variables -->
- <property id="x" itemSubjectRef="_xItem"/>
-
- <!-- nodes -->
- <startEvent id="_1" name="StartProcess" />
- <intermediateThrowEvent id="_2" name="MessageEvent" >
- <dataInput id="_2_Input" name="param" itemSubjectRef="_xItem"/>
- <dataInputAssociation>
- <sourceRef>x</sourceRef>
- <targetRef>_2_Input</targetRef>
- <transformation
language="http://www.java.com/java">x.toUpperCase();</transformation>
- </dataInputAssociation>
- <inputSet>
- <dataInputRefs>_2_Input</dataInputRefs>
- </inputSet>
- <messageEventDefinition messageRef="_2_Message"/>
- </intermediateThrowEvent>
- <endEvent id="_3" name="EndEvent" />
-
- <!-- connections -->
- <sequenceFlow id="_1-_2" sourceRef="_1" targetRef="_2" />
- <sequenceFlow id="_2-_3" sourceRef="_2" targetRef="_3" />
-
- </process>
-
- <bpmndi:BPMNDiagram>
- <bpmndi:BPMNPlane bpmnElement="MessageIntermediateEvent" >
- <bpmndi:BPMNShape bpmnElement="_1" >
- <dc:Bounds x="16" y="16" width="48" height="48" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape bpmnElement="_2" >
- <dc:Bounds x="96" y="16" width="131" height="48" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNShape bpmnElement="_3" >
- <dc:Bounds x="262" y="15" width="48" height="48" />
- </bpmndi:BPMNShape>
- <bpmndi:BPMNEdge bpmnElement="_1-_2" >
- <di:waypoint x="40" y="40" />
- <di:waypoint x="161" y="40" />
- </bpmndi:BPMNEdge>
- <bpmndi:BPMNEdge bpmnElement="_2-_3" >
- <di:waypoint x="161" y="40" />
- <di:waypoint x="286" y="39" />
- </bpmndi:BPMNEdge>
- </bpmndi:BPMNPlane>
- </bpmndi:BPMNDiagram>
-
-</definitions>
\ No newline at end of file
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]