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( start, Node.CONNECTION_DEFAULT_TYPE, timerNode, Node.CONNECTION_DEFAULT_TYPE ); ActionNode actionNode = new ActionNode(); actionNode.setId( 3 ); actionNode.setName( "Action" ); DroolsConsequenceAction action = new DroolsConsequenceAction(); action.setDialect( "java" ); action.setConsequence( "System.out.println(\"Executed action\");" );
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);
startNode.setTimer(timer); if (parser.getParent() instanceof EventSubProcessNode) { eventFilter.setType("Timer-" + ((EventSubProcessNode) parser.getParent()).getId()); trigger.addEventFilter(eventFilter); String mapping = (String) startNode.getMetaData("TriggerMapping"); if (mapping != null) { trigger.addInMapping(mapping, "event"); startNode.addTrigger(trigger); ((EventSubProcessNode) parser.getParent()).addTimer(timer, new DroolsConsequenceAction("java", ""));
protected void validateAddNode(Node node) { super.validateAddNode(node); StartNode startNode = getStart(null); if ((node instanceof StartNode) && (startNode != null && startNode.getTriggers() == null && startNode.getTimer() == null)) { // ignore start nodes that are event based if ((((StartNode) node).getTriggers() == null || ((StartNode) node).getTriggers().isEmpty()) && ((StartNode) node).getTimer() == null) { throw new IllegalArgumentException( "A RuleFlowProcess cannot have more than one start node!"); } } }
public StartNode getStart(String trigger) { Node[] nodes = getNodes(); if (trigger == null && ((start.getTriggers() == null || start.getTriggers().isEmpty()) && start.getTimer() == null)) { return start; } else { if (start.getTriggers() != null) { for (Trigger t : start.getTriggers()) { if (t instanceof EventTrigger) { for (EventFilter filter : ((EventTrigger) t).getEventFilters()) { } else if (start.getTimer() != null) {
private void addTriggerWithInMappings(StartNode startNode, String triggerEventType) { EventTrigger trigger = new EventTrigger(); EventTypeFilter eventFilter = new EventTypeFilter(); eventFilter.setType(triggerEventType); trigger.addEventFilter(eventFilter); String mapping = (String) startNode.getMetaData("TriggerMapping"); if (mapping != null) { trigger.addInMapping(mapping, startNode.getOutMapping(mapping)); } startNode.addTrigger(trigger); }
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); process.setGlobals(globals); DroolsConsequenceAction action = new DroolsConsequenceAction("dialect", "consequence"); StartNode startNode = new StartNode(); startNode.setName("start"); startNode.setMetaData("x", 1); startNode.setMetaData("y", 2); startNode.setMetaData("width", 3); startNode.setMetaData("height", 4); startNode.setMetaData("meta1", "someValue"); startNode.setMetaData("meta2", "someOtherValue"); ConstraintTrigger constraintTrigger = new ConstraintTrigger(); constraintTrigger.setConstraint("constraint"); inMapping.put("key2", "value2"); constraintTrigger.setInMappings(inMapping); startNode.addTrigger(constraintTrigger); EventTrigger eventTrigger = new EventTrigger(); EventTypeFilter eventTypeFilter = new EventTypeFilter(); inMapping.put("key2", "value2"); eventTrigger.setInMappings(inMapping); startNode.addTrigger(eventTrigger); action = new DroolsConsequenceAction("dialect", "consequence");
NodeInstanceFactoryRegistry.getInstance(ksession.getEnvironment()).register( mockNode.getClass(), mockNodeFactory ); RuleFlowProcess process = new RuleFlowProcess(); StartNode startNode = new StartNode(); startNode.setId( 1 ); startNode.setName( "start node" ); new ConnectionImpl( startNode, org.jbpm.workflow.core.Node.CONNECTION_DEFAULT_TYPE, mockNode, org.jbpm.workflow.core.Node.CONNECTION_DEFAULT_TYPE); process.addNode( startNode ); process.addNode( mockNode ); assertNotNull(triggeredBy); assertEquals(1, triggeredBy.size()); assertSame(startNode.getId(), triggeredBy.get(0).getNodeId());
continue; List<Trigger> triggers = ((StartNode) subNode).getTriggers(); if ( triggers == null ) { continue; DroolsConsequenceAction action = new DroolsConsequenceAction("java", PROCESS_INSTANCE_SIGNAL_EVENT + signalType+"\", " +(faultVariable==null?"null":"kcontext.getVariable(\""+faultVariable+"\")")+");"); exceptionHandler.setAction(action); String processId = ((RuleFlowProcess) container).getId(); String type = "RuleFlowStateEventSubProcess-Event-" + processId + "-" + eventSubProcessNode.getUniqueId(); EventTypeFilter eventTypeFilter = new EventTypeFilter();
if (node instanceof StartNode) { final StartNode startNode = (StartNode) node; if (startNode.getTo() == null) { addErrorMessage(process, node, if (startNode.getTimer() != null) { validateTimer(startNode.getTimer(), node, process, final List<Node> start = RuleFlowProcess.getStartNodes(forEachNode.getNodes()); if (start != null) { for (Node s : start) { if (((StartNode) s).getTriggers() != null && !((StartNode) s).getTriggers().isEmpty() || ((StartNode) s).getTimer() != null) { addErrorMessage(process, node, if (startNode.getTriggers() == null || startNode.getTriggers().isEmpty()) { addErrorMessage(process, startNode, final List<Node> start = RuleFlowProcess.getStartNodes(compositeNode.getNodes()); if (start != null) { for (Node s : start) { if (((StartNode) s).getTriggers() != null && !((StartNode) s).getTriggers().isEmpty() || ((StartNode) s).getTimer() != null) { addErrorMessage(process, node,
private void initProcessEventListener(Process process) { if ( process instanceof RuleFlowProcess ) { for (Node node : ((RuleFlowProcess) process).getNodes()) { if (node instanceof StartNode) { StartNode startNode = (StartNode) node; if (startNode != null) { List<Trigger> triggers = startNode.getTriggers(); if ( triggers != null ) { for ( Trigger trigger : triggers ) { filters, trigger.getInMappings(), startNode.getEventTransformer()); signalManager.addEventListener( type, listener ); ((RuleFlowProcess) process).getRuntimeMetaData().put("StartProcessEventType", type); ((RuleFlowProcess) process).getRuntimeMetaData().put("StartProcessEventListener", listener);
writeNode("startEvent", startNode, xmlDump, metaDataType); xmlDump.append(" isInterrupting=\"" ); if (startNode.isInterrupting()) { xmlDump.append("true"); } else { List<Trigger> triggers = startNode.getTriggers(); if (triggers != null) { if (triggers.size() > 1) { mapping = (String) startNode.getMetaData("TriggerMapping"); " <dataOutput id=\"_" + startNode.getId() + "_Output\" name=\""+ nameMapping +"\" />" + EOL + " <dataOutputAssociation>" + EOL + " <sourceRef>_" + startNode.getId() + "_Output</sourceRef>" + EOL + " <targetRef>" + mapping + "</targetRef>" + EOL + " </dataOutputAssociation>" + EOL); if (startNode.getTimer() != null) { Timer timer = startNode.getTimer(); xmlDump.append(" <timerEventDefinition>" + EOL); if (timer != null && (timer.getDelay() != null || timer.getDate() != null)) { } else if (startNode.getTimer() != null) { Timer timer = startNode.getTimer(); xmlDump.append(" <timerEventDefinition>" + EOL); if (timer != null && (timer.getDelay() != null || timer.getDate() != null)) {
protected Node createNode(Attributes attrs) { return new StartNode(); }
public void writeNode(Node node, StringBuilder xmlDump, boolean includeMeta) { StartNode startNode = (StartNode) node; writeNode("start", startNode, xmlDump, includeMeta); List<Trigger> triggers = startNode.getTriggers(); if ((triggers == null || triggers.isEmpty()) && (!includeMeta || !containsMetaData(startNode))) { endNode(xmlDump);
startNode.setInterrupting(Boolean.parseBoolean(element.getAttribute("isInterrupting"))); startNode.addTrigger(trigger); break; } else if ("signalEventDefinition".equals(nodeName)) { throw new IllegalArgumentException("Could not find message " + messageRef); startNode.setMetaData("MessageType", message.getType()); if( ! startNode.isInterrupting() ) { throw new IllegalArgumentException("Could not find error " + errorRef); startNode.setMetaData("FaultCode", error.getErrorCode()); addTriggerWithInMappings(startNode, "Error-" + error.getErrorCode());
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; 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;
StartNode startNode = (StartNode) nodes[i]; List<Trigger> triggers = startNode.getTriggers(); if ( triggers != null ) { for ( Trigger trigger : triggers ) { if ( trigger instanceof ConstraintTrigger ) { builder.append( createStartConstraintRule( process, startNode.getNodeContainer(), (ConstraintTrigger) trigger ) );
startNode.setMetaData("TriggerMapping", target); startNode.setMetaData("Transformation", transformation); startNode.setEventTransformer(new EventTransformerImpl(transformation)); subNode = subNode.getNextSibling(); startNode.addOutMapping(target, dataOutputs.get(source));