private List<KiePackage> getProcessTimer() { RuleFlowProcess process = new RuleFlowProcess(); process.setId( "org.drools.test.TestProcess" ); process.setName( "TestProcess" ); process.setPackageName( "org.drools.test" ); StartNode start = new StartNode(); start.setId( 1 ); start.setName( "Start" ); new ConnectionImpl( timerNode, Node.CONNECTION_DEFAULT_TYPE, actionNode, Node.CONNECTION_DEFAULT_TYPE ); EndNode end = new EndNode(); end.setId( 6 ); end.setName( "End" ); process.addNode( end ); new ConnectionImpl( actionNode, Node.CONNECTION_DEFAULT_TYPE, end,
protected Node createNode(Attributes attrs) { EndNode node = new EndNode(); node.setTerminate(false); return node; }
public void writeNode(Node node, StringBuilder xmlDump, int metaDataType) { EndNode endNode = (EndNode) node; String eventType = (String) endNode.getMetaData("EventType"); String ref = (String) endNode.getMetaData("Ref"); String variableRef = (String) endNode.getMetaData("Variable"); if (endNode.isTerminate()) { xmlDump.append(">" + EOL); writeExtensionElements(endNode, xmlDump); xmlDump.append(" <terminateEventDefinition " + (endNode.getScope() == EndNode.PROCESS_SCOPE ? "tns:scope=\"process\"" : "") + "/>" + EOL); endNode("endEvent", xmlDump); } else { String scope = (String) endNode.getMetaData("customScope"); List<DroolsAction> actions = endNode.getActions(EndNode.EVENT_NODE_ENTER); if (actions != null && !actions.isEmpty()) { if (actions.size() == 1) { DroolsConsequenceAction action = (DroolsConsequenceAction) actions.get(0); String s = action.getConsequence(); if (s.startsWith("org.drools.core.process.instance.impl.WorkItemImpl workItem = new org.drools.core.process.instance.impl.WorkItemImpl();")) { xmlDump.append(">" + EOL); writeExtensionElements(endNode, xmlDump); String variable = (String) endNode.getMetaData("MappingVariable"); if (variable != null) { xmlDump.append(
public void handleTerminateNode(final Node node, final Element element, final String uri, final String localName, final ExtensibleXmlParser parser) throws SAXException { ((EndNode) node).setTerminate(true); EndNode endNode = (EndNode) node; org.w3c.dom.Node xmlNode = element.getFirstChild(); while (xmlNode != null) { String nodeName = xmlNode.getNodeName(); if ("terminateEventDefinition".equals(nodeName)) { String scope = ((Element) xmlNode).getAttribute("scope"); if ("process".equalsIgnoreCase(scope)) { endNode.setScope(EndNode.PROCESS_SCOPE); } else { endNode.setScope(EndNode.CONTAINER_SCOPE); } } xmlNode = xmlNode.getNextSibling(); } }
} else if ("signalEventDefinition".equals(nodeName)) { String signalName = ((Element) xmlNode).getAttribute("signalRef"); String variable = (String) endNode.getMetaData("MappingVariable"); endNode.setMetaData("EventType", "signal"); endNode.setMetaData("Ref", signalName); endNode.setMetaData("Variable", variable); actions.add(new DroolsConsequenceAction("mvel",signalExpression)); endNode.setActions(EndNode.EVENT_NODE_ENTER, actions);
public static RuleFlowProcess newShortestProcess(String processId) { StartNode startNode = new StartNode(); startNode.setName("Start"); startNode.setId(1); EndNode endNode = new EndNode(); endNode.setName("EndNode"); endNode.setId(2); connect(startNode, endNode); RuleFlowProcess process = new RuleFlowProcess(); process.setId(processId); process.addNode(startNode); process.addNode(endNode); return process; }
process.setMetaData("routerLayout", 1); imports.add("org.kie.api.runtime.process.CaseAssignment"); imports.add("org.kie.api.runtime.process.CaseData"); process.setImports(imports); process.setGlobals(globals); DroolsConsequenceAction action = new DroolsConsequenceAction("dialect", "consequence"); exceptionHandler.setFaultVariable("faultVariable2"); action = new DroolsConsequenceAction("dialect2", "consequence2"); StartNode startNode = new StartNode(); startNode.setName("start"); startNode.setMetaData("x", 1); action = new DroolsConsequenceAction("dialect", "consequence"); new ConnectionImpl(startNode, Node.CONNECTION_DEFAULT_TYPE, split, Node.CONNECTION_DEFAULT_TYPE); EndNode endNode = new EndNode(); endNode.setName("end"); endNode.setTerminate(false); endNode.setMetaData("x", 1); endNode.setMetaData("y", 2); endNode.setMetaData("width", 3); endNode.setMetaData("height", 4);
if (nodeParent instanceof EventSubProcessNode) { boolean compensationEventSubProcess = false; List<Trigger> startTriggers = ((EventSubProcessNode) nodeParent).findStartNode().getTriggers(); CESP_CHECK: for (Trigger trigger : startTriggers) { if (trigger instanceof EventTrigger) { parentId = ((RuleFlowProcess) nodeParent).getId(); } else { parentId = (String) ((NodeImpl) nodeParent).getMetaData("UniqueId"); DroolsConsequenceAction compensationAction = new DroolsConsequenceAction("java", PROCESS_INSTANCE_SIGNAL_EVENT + "Compensation\", \"" + compensationEvent + "\");"); ((ActionNode) throwEventNode).setAction(compensationAction); } else if (throwEventNode instanceof EndNode) { List<DroolsAction> actions = new ArrayList<DroolsAction>(); actions.add(compensationAction); ((EndNode) throwEventNode).setActions(EndNode.EVENT_NODE_ENTER, actions);
Node endNode = new EndNode(); endNode.setId( 1 ); endNode.setName( "end node" ); new ConnectionImpl(mockNode, Node.CONNECTION_DEFAULT_TYPE, endNode, Node.CONNECTION_DEFAULT_TYPE);
protected Node createNode() { return new EndNode(); }
if (endNode.isTerminate()) { cases.put(name, testCode); return true; if (node instanceof StartNode) { StartNode startNode = (StartNode) node; if (startNode.getTriggers() == null || startNode.getTriggers().isEmpty()) { done = processNodes(name, startNode.getTo().getTo(), testCode, cases, ongoingCases); break;
public EndNodeFactory terminate(boolean terminate) { getEndNode().setTerminate(terminate); return this; } }
if (getEndNode().isTerminate()) { if (getNodeInstanceContainer() instanceof CompositeNodeInstance) { if (getEndNode().getScope() == EndNode.PROCESS_SCOPE) { getProcessInstance().setState( ProcessInstance.STATE_COMPLETED ); } else {
protected boolean isTerminated(NodeInstance from) { if (from instanceof EndNodeInstance) { return ((EndNodeInstance) from).getEndNode().isTerminate(); } return false; }
public static RuleFlowProcess newProcessWithOneSubProcess(String processId, String subProcessId) { RuleFlowProcess process = new RuleFlowProcess(); process.setId(processId); StartNode startNode = new StartNode(); startNode.setName( "Start" ); startNode.setId(1); SubProcessNode subProcessNode = new SubProcessNode(); subProcessNode.setId(2); subProcessNode.setProcessId(subProcessId); subProcessNode.setName("subProcess"); EndNode endNode = new EndNode(); endNode.setName("EndNode"); endNode.setId(4); connect( startNode, subProcessNode ); connect( subProcessNode, endNode ); process.addNode( startNode ); process.addNode( subProcessNode ); process.addNode( endNode ); return process; }
if( nodeParent instanceof EventSubProcessNode ) { boolean compensationEventSubProcess = false; List<Trigger> startTriggers = ((EventSubProcessNode) nodeParent).findStartNode().getTriggers(); CESP_CHECK: for( Trigger trigger : startTriggers ) { if( trigger instanceof EventTrigger ) { parentId = ((RuleFlowProcess) nodeParent).getId(); } else { parentId = (String) ((NodeImpl) nodeParent).getMetaData("UniqueId"); DroolsConsequenceAction compensationAction = new DroolsConsequenceAction("java", PROCESS_INSTANCE_SIGNAL_EVENT + "Compensation\", \"" + compensationEvent + "\");"); ((ActionNode) throwEventNode).setAction(compensationAction); } else if( throwEventNode instanceof EndNode ) { List<DroolsAction> actions = new ArrayList<DroolsAction>(); actions.add(compensationAction); ((EndNode) throwEventNode).setActions(EndNode.EVENT_NODE_ENTER, actions);
throw new IllegalArgumentException("Could not find message " + messageRef); String variable = (String) endNode.getMetaData("MappingVariable"); endNode.setMetaData("MessageType", message.getType()); List<DroolsAction> actions = new ArrayList<DroolsAction>(); actions.add(new DroolsConsequenceAction("java", "org.drools.core.process.instance.impl.WorkItemImpl workItem = new org.drools.core.process.instance.impl.WorkItemImpl();" + EOL + "workItem.setName(\"Send Task\");" + EOL + "workItem.setDeploymentId((String) kcontext.getKnowledgeRuntime().getEnvironment().get(\"deploymentId\"));" + EOL + "((org.drools.core.process.instance.WorkItemManager) kcontext.getKnowledgeRuntime().getWorkItemManager()).internalExecuteWorkItem(workItem);")); endNode.setActions(EndNode.EVENT_NODE_ENTER, actions);
protected Node createNode() { return new EndNode(); }
public void handleNode(final Node node, final Element element, final String uri, final String localName, final ExtensibleXmlParser parser) throws SAXException { super.handleNode(node, element, uri, localName, parser); EndNode endNode = (EndNode) node; String terminate = element.getAttribute("terminate"); if (terminate != null && "false".equals(terminate) ) { endNode.setTerminate(false); } }