@Override public void afterProcessStarted(ProcessStartedEvent event) { logger.info(">>> Firing All the Rules after process started! " + event); ((StatefulKnowledgeSession) event.getKieRuntime()).fireAllRules(); } });
@Test @Ignore("beta4 phreak") public void testStartTimerCycleFromDiscDRL() throws Exception { KieBase kbase = createKnowledgeBaseFromDisc("rules-timer.drl"); StatefulKnowledgeSession ksession = createKnowledgeSession(kbase); long sessionId = ksession.getIdentifier(); Environment env = ksession.getEnvironment(); final List<String> list = new ArrayList<String>(); ksession.setGlobal("list", list); ( (SingleSessionCommandService) ( (CommandBasedStatefulKnowledgeSession) ksession ).getRunner() ).getKieSession() .addEventListener(new TriggerRulesEventListener(ksession)); ksession.fireAllRules(); Thread.sleep(5000); assertEquals(2, list.size()); logger.info("dispose"); ksession.dispose(); ksession = JPAKnowledgeService.loadStatefulKnowledgeSession(sessionId, kbase, null, env); AuditLoggerFactory.newInstance(Type.JPA, ksession, null); final List<String> list2 = new ArrayList<String>(); ksession.setGlobal("list", list2); ( (SingleSessionCommandService) ( (CommandBasedStatefulKnowledgeSession) ksession ).getRunner() ).getKieSession() .addEventListener(new TriggerRulesEventListener(ksession)); ksession.fireAllRules(); Thread.sleep(6000); assertEquals(3, list2.size()); }
@Test @Ignore("beta4 phreak") public void testStartTimerCycleFromClasspathDRL() throws Exception { KieBase kbase = createKnowledgeBaseWithoutDumper("rules-timer.drl"); StatefulKnowledgeSession ksession = createKnowledgeSession(kbase); long sessionId = ksession.getIdentifier(); Environment env = ksession.getEnvironment(); final List<String> list = new ArrayList<String>(); ksession.setGlobal("list", list); ( (SingleSessionCommandService) ( (CommandBasedStatefulKnowledgeSession) ksession ).getRunner() ).getKieSession() .addEventListener(new TriggerRulesEventListener(ksession)); ksession.fireAllRules(); Thread.sleep(5000); assertEquals(2, list.size()); logger.info("dispose"); ksession.dispose(); ksession = JPAKnowledgeService.loadStatefulKnowledgeSession(sessionId, kbase, null, env); AuditLoggerFactory.newInstance(Type.JPA, ksession, null); final List<String> list2 = new ArrayList<String>(); ksession.setGlobal("list", list2); ( (SingleSessionCommandService) ( (CommandBasedStatefulKnowledgeSession) ksession ).getRunner() ).getKieSession() .addEventListener(new TriggerRulesEventListener(ksession)); ksession.fireAllRules(); Thread.sleep(5000); assertEquals(3, list2.size()); }
ksession.fireAllRules();
ksession.fireAllRules(); ut.commit(); assertEquals( 2, ut.rollback(); ksession.fireAllRules(); ut.commit(); ksession.fireAllRules();
@Test public void testLocalTransactionPerStatement() { KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add( ResourceFactory.newByteArrayResource( ruleString.getBytes() ), ResourceType.DRL ); InternalKnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); if ( kbuilder.hasErrors() ) { fail( kbuilder.getErrors().toString() ); } kbase.addPackages( kbuilder.getKnowledgePackages() ); StatefulKnowledgeSession ksession = JPAKnowledgeService.newStatefulKnowledgeSession( kbase, null, env ); List<?> list = new ArrayList<Object>(); ksession.setGlobal( "list", list ); ksession.insert( 1 ); ksession.insert( 2 ); ksession.insert( 3 ); ksession.fireAllRules(); assertEquals( 3, list.size() ); }
ksession.fireAllRules();
ksession.getAgenda().getAgendaGroup("badfocus").setFocus(); ksession.fireAllRules();
@Test public void testPersistenceState() { KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); kbuilder.add( new ClassPathResource( "StateProcess.rf" ), ResourceType.DRF ); InternalKnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(); kbase.addPackages( kbuilder.getKnowledgePackages() ); StatefulKnowledgeSession ksession = JPAKnowledgeService.newStatefulKnowledgeSession( kbase, null, env ); long id = ksession.getIdentifier(); ProcessInstance processInstance = ksession.startProcess( "org.drools.test.TestProcess" ); logger.debug( "Started process instance {}", processInstance.getId() ); ksession = JPAKnowledgeService.loadStatefulKnowledgeSession( id, kbase, null, env ); processInstance = ksession.getProcessInstance( processInstance.getId() ); assertNotNull( processInstance ); ksession = JPAKnowledgeService.loadStatefulKnowledgeSession( id, kbase, null, env ); ksession.insert(new ArrayList<Object>()); ksession.fireAllRules(); ksession = JPAKnowledgeService.loadStatefulKnowledgeSession( id, kbase, null, env ); processInstance = ksession.getProcessInstance( processInstance.getId() ); assertNull( processInstance ); }
public void run() { ksession.fireAllRules(); } };
@Override public void afterProcessStarted(ProcessStartedEvent event) { logger.info(">>> Firing All the Rules after process started! " + event); ((StatefulKnowledgeSession) event.getKieRuntime()).fireAllRules(); } });
@Test public void testMatchesMVEL2() throws Exception { KnowledgeBase kbase = loadKnowledgeBase( "test_MatchesMVEL2.drl" ); StatefulKnowledgeSession ksession = createKnowledgeSession( kbase ); Map map = new HashMap(); map.put( "content", "String with . and (routine)" ); ksession.insert( map ); int fired = ksession.fireAllRules(); assertEquals( 2, fired ); }
@Test public void testjustEval() throws Exception { KnowledgeBase kbase = SerializationHelper.serializeObject( loadKnowledgeBase( "test_NoPatterns.drl" ) ); StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession(); final List list = new ArrayList(); ksession.setGlobal( "list", list ); ksession.fireAllRules(); assertTrue( list.contains( "fired1" ) ); assertTrue( list.contains( "fired3" ) ); }
@Test public void testEmptyRule() throws Exception { KnowledgeBase kbase = SerializationHelper.serializeObject( loadKnowledgeBase( "test_EmptyRule.drl" ) ); StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession(); final List list = new ArrayList(); ksession.setGlobal( "list", list ); ksession.fireAllRules(); assertTrue( list.contains( "fired1" ) ); assertTrue( list.contains( "fired2" ) ); }
@Test public void testCastingInsideEvals() throws Exception { KnowledgeBase kbase = SerializationHelper.serializeObject( loadKnowledgeBase( "test_castsInsideEval.drl" ) ); StatefulKnowledgeSession ksession = createKnowledgeSession( kbase ); ksession.setGlobal( "value", new Integer( 20 ) ); ksession.fireAllRules(); }
@Test public void testJitCastOfPrimitiveType() { // DROOLS-79 String str = "rule R when\n" + " Number(longValue < (Long)7)\n" + "then\n" + "end\n"; KnowledgeBase kbase = loadKnowledgeBaseFromString(str); StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession(); ksession.insert(new Long(6)); assertEquals(1, ksession.fireAllRules()); }
@Test public void testStringCoercionComparison() { // DROOLS-167 String str = "import " + Person.class.getName() + ";\n" + "rule R1 when\n" + " $p : Person( name < \"90201304122000000000000017\" )\n" + "then end\n"; KnowledgeBase kbase = loadKnowledgeBaseFromString( str ); StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession(); ksession.insert( new Person( "90201304122000000000000015", 38 ) ); assertEquals( 1, ksession.fireAllRules() ); }
@Test public void testShadowProxyInHirarchies() throws Exception { KnowledgeBase kbase = SerializationHelper.serializeObject( loadKnowledgeBase( "test_ShadowProxyInHirarchies.drl" ) ); StatefulKnowledgeSession ksession = createKnowledgeSession( kbase ); ksession.insert( new Child( "gp" ) ); ksession.fireAllRules(); }
@Test public void testQuery2() throws Exception { KnowledgeBase kbase = SerializationHelper.serializeObject(loadKnowledgeBase("test_Query.drl")); StatefulKnowledgeSession session = createKnowledgeSession( kbase ); session.fireAllRules(); org.kie.api.runtime.rule.QueryResults results = session.getQueryResults( "assertedobjquery" ); assertEquals( 1, results.size() ); assertEquals( new InsertedObject( "value1" ), ((InternalFactHandle) results.iterator().next().getFactHandle( "assertedobj" )).getObject() ); }
@Test public void testInsurancePricingExample() throws Exception { KnowledgeBase kbase = SerializationHelper.serializeObject( loadKnowledgeBase( "insurance_pricing_example.drl" ) ); StatefulKnowledgeSession ksession = createKnowledgeSession( kbase ); // now create some test data final Driver driver = new Driver(); final Policy policy = new Policy(); ksession.insert( driver ); ksession.insert( policy ); ksession.fireAllRules(); assertEquals( 120, policy.getBasePrice() ); }