context.loadTaskVariables(task); kieSession.insert(task); kieSession.fireAllRules(); Set<Assignment> assignments = new TreeSet<>(); String queryName = System.getProperty("org.jbpm.task.assignment.rules.query"); kieSession.dispose(); logger.debug("KieSession in BusinessRule disposed");
private void resetKieSession() { if (kieSession != null) { kieSession.dispose(); } kieSession = scoreDirectorFactory.newKieSession(); ((RuleEventManager) kieSession).addEventListener(new OptaplannerRuleEventListener()); resetWorkingScoreHolder(); // TODO Adjust when uninitialized entities from getWorkingFacts get added automatically too (and call afterEntityAdded) Collection<Object> workingFacts = getWorkingFacts(); for (Object fact : workingFacts) { kieSession.insert(fact); } }
KieBase ruleBase = ruleContextProvider.getKieBase(scope); if (ruleBase != null) { KieSession session = ruleBase.newKieSession(); Map<String, Object> globals = ruleContextProvider.getGlobals(scope); if (globals != null) { TaskServiceRequest request = new TaskServiceRequest(scope, user, null); session.setGlobal("request", request); session.insert(task); if (params != null) { if (params instanceof ContentData) { session.insert(params); session.fireAllRules(); session.dispose();
@Test public void testOnEntryTimerCancelled() throws Exception { Reader source = new StringReader( assertEquals(0, myList.size()); assertEquals(ProcessInstance.STATE_ACTIVE, processInstance.getState()); assertEquals(1, ((InternalProcessRuntime) ((InternalWorkingMemory) session).getProcessRuntime()).getTimerManager().getTimers().size()); session.insert(new Message()); session.fireAllRules(); assertEquals(0, myList.size()); assertEquals(0, ((InternalProcessRuntime) ((InternalWorkingMemory) session).getProcessRuntime()).getTimerManager().getTimers().size()); session.dispose();
@Test public void testOnEntryTimerVariableExecuted() throws Exception { Reader source = new StringReader( ProcessInstance processInstance = ( ProcessInstance ) session.startProcess("org.drools.timer", params); assertEquals(0, myList.size()); assertEquals(ProcessInstance.STATE_ACTIVE, processInstance.getState()); assertEquals(1, ((InternalProcessRuntime) ((InternalWorkingMemory) session).getProcessRuntime()).getTimerManager().getTimers().size()); assertEquals(1, myList.size()); session.dispose();
@Test(timeout=10000) public void testTimerStartCycleLegacy() throws Exception { NodeLeftCountDownProcessEventListener countDownListener = new NodeLeftCountDownProcessEventListener("StartProcess", 2); KieBase kbase = createKnowledgeBase("BPMN2-TimerStartCycleLegacy.bpmn2"); ksession = createKnowledgeSession(kbase); ksession.addEventListener(countDownListener); final List<Long> list = new ArrayList<Long>(); ksession.addEventListener(new DefaultProcessEventListener() { public void beforeProcessStarted(ProcessStartedEvent event) { list.add(event.getProcessInstance().getId()); } }); logger.debug("About to start ###### " + new Date()); assertThat(list.size()).isEqualTo(0); // then wait 5 times 5oo ms as that is period configured on the process countDownListener.waitTillCompleted(); ksession.dispose(); assertThat(getNumberOfProcessInstances("Minimal")).isEqualTo(2); }
@Test public void testAdHocSubProcessAutoCompleteDynamicTask() throws Exception { KieBase kbase = createKnowledgeBaseWithoutDumper( ksession.getWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler); ksession.fireAllRules(); workItem = workItemHandler.getWorkItem(); assertNotNull(workItem); ksession.getWorkItemManager().completeWorkItem(workItem.getId(), null); assertProcessInstanceFinished(processInstance, ksession); ksession.dispose();
@Test public void testGetListeners() { // JBRULES-3378 KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); if (kbuilder.hasErrors()) { throw new RuntimeException(kbuilder.getErrors().toString()); } KieSession ksession = kbuilder.newKieBase().newKieSession(); ksession.getAgendaEventListeners(); ksession.getProcessEventListeners(); ksession.getRuleRuntimeEventListeners(); ksession.dispose(); } }
private void checkKSession(boolean dispose, KieSession ksession, Object... results) { List<String> list = new ArrayList<String>(); ksession.setGlobal( "list", list ); ksession.fireAllRules(); if (dispose) { ksession.dispose(); } assertEquals(results.length, list.size()); for (Object result : results) { assertTrue( String.format( "Expected to contain: %s, got: %s", result, Arrays.toString( list.toArray() ) ), list.contains( result ) ); } }
public static long[] execTest(KieBase kbase, int n, boolean isRelational) { KieSession ksession = kbase.newKieSession(); Node root = generateTree( ksession, n, isRelational ); List list = new ArrayList(); long start = System.nanoTime(); ksession.getQueryResults( "findNodesWithValue", isRelational ? root.getId() : root, 0, list ); ksession.fireAllRules(); long[] result = new long[]{ (System.nanoTime() - start) }; //System.out.println( list.size() ); ksession.dispose(); return result; }
@Test public void testStrWithInlineCastOnThis() { String drl = "package org.drools.compiler.integrationtests " + "rule R1 " + " when " + " Object( this#String str[startsWith] \"M\" ) " + " then " + "end "; KieBase kbase = loadKnowledgeBaseFromString(drl); KieSession ksession = kbase.newKieSession(); try { ksession.insert( "Mark" ); assertEquals( "Wrong number of rules fired", 1, ksession.fireAllRules() ); } finally { ksession.dispose(); } }
@Test public void testOnEntryTimerExecuted() throws Exception { Reader source = new StringReader( assertEquals(0, myList.size()); assertEquals(ProcessInstance.STATE_ACTIVE, processInstance.getState()); assertEquals(1, ((InternalProcessRuntime) ((InternalWorkingMemory) session).getProcessRuntime()).getTimerManager().getTimers().size()); assertEquals(1, myList.size()); session.dispose();
@Test public void testExists3() throws Exception { KieBase kbase = loadKnowledgeBase("test_Exists_JBRULES_2810.drl"); KieSession ksession = createKnowledgeSession(kbase); WorkingMemoryConsoleLogger logger = new WorkingMemoryConsoleLogger( ksession ); ksession.fireAllRules(); ksession.dispose(); }
@Test public void testJBRULES_2331() throws Exception { String source = "package test.drl\n"; source += "rule dummy_rule\n"; source += "when\n"; source += "eval( false )\n"; source += "then\n"; source += "end\n"; KieBase kbase = loadKnowledgeBaseFromString( source ); KieSession ksession = kbase.newKieSession(); ksession = org.drools.compiler.integrationtests.SerializationHelper.getSerialisedStatefulKnowledgeSession(ksession, true); assertNotNull( ksession ); ksession.dispose(); }
private void testJitting(final String drl) { final KieBase kbase = loadKnowledgeBaseFromString(drl); final KieSession ksession = kbase.newKieSession(); ksession.insert(new Person("mark", 37)); ksession.insert(new Person("mario", 38)); ksession.fireAllRules(); ksession.dispose(); }
@Override public void afterFireAllRules(KieSession kieSession, TestGenKieSessionJournal journal, TestGenKieSessionFireAllRules fire) { KieSession uncorruptedSession = scoreDirector.createKieSession(); for (TestGenKieSessionInsert insert : journal.getInitialInserts()) { Object object = insert.getFact().getInstance(); uncorruptedSession.insert(object); } uncorruptedSession.fireAllRules(); uncorruptedSession.dispose(); Score<?> uncorruptedScore = extractScore(uncorruptedSession); Score<?> workingScore = extractScore(kieSession); if (!workingScore.equals(uncorruptedScore)) { logger.debug(" Score: working[{}], uncorrupted[{}]", workingScore, uncorruptedScore); throw new TestGenCorruptedScoreException(workingScore, uncorruptedScore); } }
@Test public void testInlineCastWithThis() { String drl = "package org.drools.compiler.integrationtests " + "import org.drools.compiler.*; " + "rule R1 " + " when " + " Object( this#String matches \"[Uu]nited.*\" ) " + " then " + "end "; KieBase kbase = loadKnowledgeBaseFromString(drl); KieSession ksession = kbase.newKieSession(); try { ksession.insert( "United States" ); ksession.insert( "United Kingdom" ); ksession.insert( "Italy" ); assertEquals( "wrong number of rules fired", 2, ksession.fireAllRules() ); } finally { ksession.dispose(); } }
@Test public void testTimerOnUnmarshalledSession() throws Exception { String process = assertEquals(1, session.getProcessInstances().size()); session.dispose(); assertEquals(0, session2.getProcessInstances().size());
@Test public void testMultiErrorBoundaryEventsOnBusinessRuleTask() throws Exception { KieBase kbase = createKnowledgeBaseWithoutDumper("BPMN2-MultiErrorBoundaryEventsOnBusinessRuleTask.bpmn2", "BPMN2-MultiErrorBoundaryEventsOnBusinessRuleTask.drl"); ksession = createKnowledgeSession(kbase); ksession.addEventListener(new RuleAwareProcessEventLister()); Map<String, Object> params = new HashMap<String, Object>(); params.put("person", new Person()); ProcessInstance processInstance = ksession.startProcess("BPMN2-MultiErrorBoundaryEventeOnBusinessRuleTask", params); assertProcessInstanceFinished(processInstance, ksession); assertNodeTriggered(processInstance.getId(), "start", "business rule task error attached", "NPE Script Task", "error1"); ksession.dispose(); ksession = createKnowledgeSession(kbase); ksession.addEventListener(new RuleAwareProcessEventLister()); params = new HashMap<String, Object>(); params.put("person", new Person("unsupported")); ProcessInstance processInstance2 = ksession.startProcess("BPMN2-MultiErrorBoundaryEventeOnBusinessRuleTask", params); assertProcessInstanceFinished(processInstance2, ksession); assertNodeTriggered(processInstance2.getId(), "start", "business rule task error attached", "UOE Script Task", "error2"); }