public void matchCancelled(MatchCancelledEvent event) { activations.add( event.getMatch() ); } };
public void afterRuleFlowGroupDeactivated(final RuleFlowGroupDeactivatedEvent event) { if (kruntime instanceof StatefulKnowledgeSession) { signalManager.signalEvent( "RuleFlowGroup_" + event.getRuleFlowGroup().getName() + "_" + ((StatefulKnowledgeSession) kruntime).getIdentifier(), null ); } else { signalManager.signalEvent( "RuleFlowGroup_" + event.getRuleFlowGroup().getName(), null ); } } } );
public void matchCreated(MatchCreatedEvent event) { String ruleFlowGroup = ((RuleImpl) event.getMatch().getRule()).getRuleFlowGroup(); if ( "DROOLS_SYSTEM".equals( ruleFlowGroup ) ) { String ruleName = event.getMatch().getRule().getName(); if ( ruleName.startsWith( "RuleFlowStateNode-" )) { int index = ruleName.indexOf( '-', String ruleName = event.getMatch().getRule().getName(); if ( ruleName.startsWith( "RuleFlow-Start-" )) { String processId = ruleName.replace("RuleFlow-Start-", "");
@Override public void objectUpdated(ObjectUpdatedEvent event) { System.out.println(event.getOldObject() + " -> " + event.getObject()); } });
public void objectDeleted( org.kie.api.event.rule.ObjectDeletedEvent objectdeleteedEvent ) { if ( ! ( objectdeleteedEvent.getOldObject() instanceof String ) ) { deletes++; } }
@Override public void objectInserted( org.kie.api.event.rule.ObjectInsertedEvent event ) { if ( ! ( event.getObject() instanceof String ) ) { inserts++; } }
@Test @RequirePersistence public void testRuleTaskWithFactsWithPersistence() throws Exception { KieBase kbase = createKnowledgeBaseWithoutDumper("BPMN2-RuleTaskWithFact.bpmn2", "BPMN2-RuleTask3.drl"); ksession = createKnowledgeSession(kbase); ( (SingleSessionCommandService) ( (CommandBasedStatefulKnowledgeSession) ksession ).getRunner() ).getKieSession() .addEventListener(new TriggerRulesEventListener(ksession)); ksession.addEventListener(new DebugAgendaEventListener()); Map<String, Object> params = new HashMap<String, Object>(); params.put("x", "SomeString"); ProcessInstance processInstance = ksession.startProcess("RuleTask", params); assertProcessInstanceFinished(processInstance, ksession); params = new HashMap<String, Object>(); try { processInstance = ksession.startProcess("RuleTask", params); fail("Should fail"); } catch (Exception e) { e.printStackTrace(); } params = new HashMap<String, Object>(); params.put("x", "SomeString"); processInstance = ksession.startProcess("RuleTask", params); assertProcessInstanceFinished(processInstance, ksession); }
@Override public void objectUpdated( org.kie.api.event.rule.ObjectUpdatedEvent event ) { if ( ! ( event.getObject() instanceof String ) ) { updates++; } }
@Override public void signalEvent(String type, Object event) { if ("timerTriggered".equals(type)) { TimerInstance timerInstance = (TimerInstance) event; if (timerInstances != null && timerInstances.contains(timerInstance.getId())) { triggerTimer(timerInstance); } else if (timerInstance.getId() == slaTimerId) { handleSLAViolation(); } } else if (("slaViolation:" + getId()).equals(type)) { handleSLAViolation(); } else if (type.equals(getActivationType())) { if (event instanceof MatchCreatedEvent) { String name = ((MatchCreatedEvent)event).getMatch().getRule().getName(); if (checkProcessInstance((Activation) ((MatchCreatedEvent)event).getMatch())) { ((MatchCreatedEvent)event).getKieRuntime().signalEvent(name, null); } } } }
@Override public void objectInserted(final ObjectInsertedEvent event) { super.objectInserted(event); this.fired.compareAndSet(false, true); }
@Override public void afterMatchFired(final AfterMatchFiredEvent event) { super.afterMatchFired(event); this.fired.compareAndSet(false, true); }
@Override public void objectUpdated(ObjectUpdatedEvent event) { System.out.println(event.getOldObject() + " -> " + event.getObject()); } });
public void matchCreated(MatchCreatedEvent event) { // check whether this activation is from the DROOLS_SYSTEM agenda group String ruleFlowGroup = ((RuleImpl) event.getMatch().getRule()).getRuleFlowGroup(); if ("DROOLS_SYSTEM".equals(ruleFlowGroup)) { // new activations of the rule associate with a milestone node // trigger node instances of that milestone node String ruleName = event.getMatch().getRule().getName(); String milestoneName = "RuleFlow-AdHocComplete-" + getProcessInstance().getProcessId() + "-" + getNodeId(); if (milestoneName.equals(ruleName) && checkProcessInstance((Activation) event.getMatch()) && checkDeclarationMatch(event.getMatch(), (String) getVariable("MatchVariable"))) { synchronized(getProcessInstance()) { DynamicNodeInstance.this.removeEventListeners(); DynamicNodeInstance.this.triggerCompleted(NodeImpl.CONNECTION_DEFAULT_TYPE); } } } }
@Override public void objectDeleted(ObjectDeletedEvent event) { System.out.println(event.getOldObject() + " -> " + "_"); }
@Override public void objectInserted(ObjectInsertedEvent event) { System.out.println("_" + " -> " + event.getObject()); }
KieSession ksession = kbase.newKieSession(); ksession.addEventListener(new DebugAgendaEventListener()); ksession.addEventListener(new DebugProcessEventListener());
@Override public void objectUpdated(ObjectUpdatedEvent event) { System.out.println(event.getOldObject() + " -> " + event.getObject()); } });
public void matchCreated(MatchCreatedEvent event) { // check whether this activation is from the DROOLS_SYSTEM agenda group String ruleFlowGroup = ((RuleImpl) event.getMatch().getRule()).getRuleFlowGroup(); if ("DROOLS_SYSTEM".equals(ruleFlowGroup)) { // new activations of the rule associate with a milestone node // trigger node instances of that milestone node String ruleName = event.getMatch().getRule().getName(); String milestoneName = "RuleFlow-Milestone-" + getProcessInstance().getProcessId() + "-" + getMilestoneNode().getUniqueId(); if (milestoneName.equals(ruleName) && checkProcessInstance((Activation) event.getMatch()) && checkDeclarationMatch(event.getMatch(), getMilestoneNode().getMatchVariable())) { synchronized(getProcessInstance()) { removeEventListeners(); triggerCompleted(); } } } }
@Override public void signalEvent(String type, Object event) { if (type.startsWith("RuleFlow-AdHocActivate")) { if (event instanceof MatchCreatedEvent) { Match match = ((MatchCreatedEvent) event).getMatch(); match.getDeclarationIds().forEach(s -> this.setVariable(s.replaceFirst("\\$", ""), match.getDeclarationValue(s))); } trigger(null, org.jbpm.workflow.core.Node.CONNECTION_DEFAULT_TYPE); } else if (getActivationEventType().equals(type)) { if (event instanceof MatchCreatedEvent) { matchCreated((MatchCreatedEvent) event); } } else { super.signalEvent(type, event); for (Node node: getCompositeNode().getNodes()) { if (type.equals(resolveVariable(node.getName())) && node.getIncomingConnections().isEmpty()) { triggerSelectedNode(node, event); } } } }
public void activationCreated(MatchCreatedEvent event) { Connection selected = null; for (Connection connection: getNode().getOutgoingConnections(NodeImpl.CONNECTION_DEFAULT_TYPE)) { Constraint constraint = getStateNode().getConstraint(connection); if (constraint != null) { String constraintName = getActivationEventType() + "-" + connection.getTo().getId() + "-" + connection.getToType(); if (constraintName.equals(event.getMatch().getRule().getName()) && checkProcessInstance((Activation) event.getMatch())) { selected = connection; } } } if (selected != null) { removeEventListeners(); ((NodeInstanceContainer) getNodeInstanceContainer()).removeNodeInstance(this); triggerConnection(selected); } }