@Test public void testWireListener() throws Exception { KieServices ks = KieServices.Factory.get(); ReleaseId releaseId = ks.newReleaseId("org.kie", "listener-test", "1.0"); build(ks, releaseId); KieContainer kieContainer = ks.newKieContainer(releaseId); KieSession ksession = kieContainer.newKieSession(); ksession.fireAllRules(); assertEquals(1, insertEvents.size()); assertEquals(1, updateEvents.size()); assertEquals(1, retractEvents.size()); }
/** * Tests evaluation of a backward chaining family relationships example with * two KieSessions created from the same KieBase. * * KieSessions are constructed using different KieContainer instances. */ @Test public void testFamilyWithTwoKieSessionsFromKieContainer() throws Exception { final KieServices ks = KieServices.Factory.get(); final KieContainer kieContainer = ks.newKieContainer(kieModuleId); final KieSession ksession = kieContainer.newKieSession(); performTestAndDispose(ksession); final KieContainer kieContainerOther = ks.newKieContainer(kieModuleId); final KieSession ksessionOther = kieContainerOther.newKieSession(); performTestAndDispose(ksessionOther); }
KieServices kieServices = KieServices.Factory.get(); KieFileSystem kfs = kieServices.newKieFileSystem(); FileInputStream fis = new FileInputStream( pathToSomeDrl ); kfs.write( "src/main/resources/simple.drl", kieServices.getResources().newInputStreamResource( fis ) ); KieBuilder kieBuilder = kieServices.newKieBuilder( kfs ).buildAll(); Results results = kieBuilder.getResults(); if( results.hasMessages( Message.Level.ERROR ) ){ System.out.println( results.getMessages() ); throw new IllegalStateException( "### errors ###" ); } KieContainer kieContainer = kieServices.newKieContainer( kieServices.getRepository().getDefaultReleaseId() ); KieBase kieBase = kieContainer.getKieBase(); KieSession kieSession = kieContainer.newKieSession();
@Test public void testKieClasspathMBeans() throws Exception { MBeanServer mbserver = ManagementFactory.getPlatformMBeanServer(); KieServices ks = KieServices.Factory.get(); KieContainerMonitorMXBean.class); KieBase kb = kc.getKieBase("org.kie.monitoring.kbase1"); KieSession statefulKieSession = kc.newKieSession("org.kie.monitoring.kbase1.ksession1"); StatelessKieSession statelessKieSession = kc.newStatelessKieSession("org.kie.monitoring.kbase1.ksession2"); StatelessKieSessionMonitoringMXBean.class); assertEquals("myID", c1Monitor.getContainerId() ); assertTrue(c1Monitor.getConfiguredReleaseId().sameGAVof(KieContainerMonitorMXBean.CLASSPATH_KIECONTAINER_RELEASEID)); assertTrue(c1Monitor.getResolvedReleaseId().sameGAVof(KieContainerMonitorMXBean.CLASSPATH_KIECONTAINER_RELEASEID)); assertEquals("org.kie.monitoring.kbase1.ksession1", statefulKieSessionMonitor.getKieSessionName()); assertEquals("org.kie.monitoring.kbase1", statefulKieSessionMonitor.getKieBaseId()); assertEquals("org.kie.monitoring.kbase1.ksession1", statelessKieSessionMonitor.getKieSessionName()); assertEquals("org.kie.monitoring.kbase1", statelessKieSessionMonitor.getKieBaseId()); KieContainerMonitorMXBean.class); KieBase kb2 = kc2.getKieBase("org.kie.monitoring.kbase1"); KieSession statefulKieSession2 = kc2.newKieSession("org.kie.monitoring.kbase1.ksession1"); StatelessKieSession statelessKieSession2 = kc2.newStatelessKieSession("org.kie.monitoring.kbase1.ksession2"); KieSessionMonitoringMXBean statefulKieSessionMonitor2 = JMX.newMXBeanProxy(
" // do something;\n" + "end"; KieServices ks = KieServices.Factory.get(); KieFileSystem kfs = ks.newKieFileSystem(); assertEquals(0, builder.getResults().getMessages().size()); this.kieSession = ks.newKieContainer(ks.getRepository() .getDefaultReleaseId()).newKieSession();
@Test(timeout = 5000) @Ignore("The checkReachability method is not totally reliable and can fall in an endless loop." + "We need to find a better way to check this.") public void testLeakAfterSessionDispose() { // DROOLS-1655 String drl = "import " + Person.class.getCanonicalName() + "\n" + "rule R when\n" + " $p : Person()\n" + "then\n" + "end\n"; KieContainer kContainer = new KieHelper().addContent( drl, ResourceType.DRL ).getKieContainer(); KieSession ksession = kContainer.newKieSession(); KieBase kBase = ksession.getKieBase(); ksession.insert( new Person("Mario", 40) ); ksession.fireAllRules(); checkReachability( ksession, Person.class::isInstance, true ); checkReachability( kBase, ksession::equals, true ); checkReachability( kContainer, ksession::equals, true ); ksession.dispose(); checkReachability( kContainer, Person.class::isInstance, false ); checkReachability( kBase, ksession::equals, false ); checkReachability( kContainer, ksession::equals, false ); }
public void testDefaultKieContainer() throws IOException, ClassNotFoundException, InterruptedException { assertSame( kContainer, KieServices.Factory.get().getKieClasspathContainer() ); KieSession kSession = kContainer.newKieSession( "jar2.KSession2" ); List<String> list = new ArrayList<String>(); kSession.setGlobal( "list", list ); kSession.fireAllRules(); assertEquals( 2, list.size() ); assertTrue( list.get( 0 ).endsWith( "2.0" ) ); assertTrue( list.get( 1 ).endsWith( "2.0" ) ); }
public static void main(String[] args) { KieServices kieServices = KieServices.Factory.get(); KieContainer container = kieServices.newKieContainer(kieServices.newReleaseId("com.secbro2","drools-rules","1.0-SNAPSHOT")); KieSession kieSession = container.newKieSession("all-kieSession-1"); int nums = kieSession.fireAllRules(); System.out.println("Fire " + nums + " rules!"); } }
public static void main(String[] args) { KieServices kieServices = KieServices.Factory.get(); KieContainer container = kieServices.getKieClasspathContainer(); KieSession kieSession = container.newKieSession("all-kieSession-1"); int nums = kieSession.fireAllRules(); System.out.println("Fire " + nums + " rules!"); } }
@Test public void testWireChannel() throws Exception { KieServices ks = KieServices.Factory.get(); ReleaseId releaseId = ks.newReleaseId("org.kie", "listener-test", "1.0"); build(ks, releaseId); KieContainer kieContainer = ks.newKieContainer(releaseId); KieSession ksession = kieContainer.newKieSession(); ksession.fireAllRules(); assertEquals(1, channelMessages.size()); assertEquals("Test Message", channelMessages.get(0)); }
@Test public void testBuilderKieContainerInstantiation() throws Exception { Charset.forName("UTF-8"))); assertNotNull(validationMessages); assertEquals(0, validationMessages.size()); final KieSession kieSession1 = kieContainer1.newKieSession(); kieSession1.setGlobal("list", new ArrayList<String>());
@Test public void testSnapshot() throws Exception { Path tempDir = Files.createTempDirectory(FileSystems.getDefault().getPath("./target"), null); File file = null; try { KieServices ks = KieServices.Factory.get(); ReleaseId releaseId = ks.newReleaseId( "org.kie", "scanner-test", "1.0-SNAPSHOT" ); createKieJar( ks, releaseId, "R1" ); KieContainer kieContainer = ks.newKieContainer( releaseId ); KieSession ksession = kieContainer.newKieSession(); checkKSession( ksession, "R1" ); KieScanner scanner = ks.newKieScanner( kieContainer, tempDir.toString() ); scanner.scanNow(); ksession = kieContainer.newKieSession(); checkKSession( ksession, "R1" ); file = write( createKieJar( ks, releaseId, "R2" ), tempDir, releaseId ); ksession = kieContainer.newKieSession(); checkKSession( ksession, "R1" ); scanner.scanNow(); ksession = kieContainer.newKieSession(); checkKSession( ksession, "R2" ); } finally { if (file != null) { file.delete(); } Files.delete(tempDir); } }
"\n"; KieServices ks = KieServices.Factory.get(); KieFileSystem kfs = ks.newKieFileSystem().write( "src/main/resources/r1.drl", str ); assertEquals(0, builder.getResults().getMessages().size()); ks.getRepository().addKieModule(builder.getKieModule()); this.kieSession = ks.newKieContainer(ks.getRepository() .getDefaultReleaseId()).newKieSession();
@Test public void testNewType() throws IllegalAccessException, InstantiationException { KieContainer kieContainer = this.getKieContainer(); KieBase kieBase = kieContainer.getKieBase("new-type-kbase"); FactType factType = kieBase.getFactType("com.newType","Country"); Object country = factType.newInstance(); factType.set(country,"name","美国"); KieSession kieSession = kieContainer.newKieSession("new-type-rules"); kieSession.insert(country); kieSession.fireAllRules(); kieSession.dispose(); } }
KieServices ks = KieServices.Factory.get(); ReleaseId releaseId = ks.newReleaseId("groupID", "artifactID", "LATEST"); KieContainer kieContainer = ks.newKieContainer(releaseId); KieSession kieSession = kieContainer.newKieSession(); kieSession.insert(object); kieSession.fireAllRules();
private KieSession kieSession; public void build() throws Exception { KieServices kieServices = KieServices.Factory.get(); KieFileSystem kfs = kieServices.newKieFileSystem(); // for each DRL file, referenced by a plain old path name: FileInputStream fis = new FileInputStream( "simple/simple.drl" ); kfs.write( "src/main/resources/simple.drl", kieServices.getResources().newInputStreamResource( fis ) ); KieBuilder kieBuilder = kieServices.newKieBuilder( kfs ).buildAll(); Results results = kieBuilder.getResults(); if( results.hasMessages( Message.Level.ERROR ) ){ System.out.println( results.getMessages() ); throw new IllegalStateException( "### errors ###" ); } KieContainer kieContainer = kieServices.newKieContainer( kieServices.getRepository().getDefaultReleaseId() ); KieBase kieBase = kieContainer.getKieBase(); kieSession = kieContainer.newKieSession(); }
public void go(PrintStream out) { KieServices ks = KieServices.Factory.get(); KieContainer kContainer = ks.getKieClasspathContainer(); KieSession kSession = kContainer.newKieSession("ksession1"); kSession.setGlobal("out", out); kSession.insert(new Message("Dave", "Hello, HAL. Do you read me, HAL?")); kSession.fireAllRules(); }
@Test public void testGetDefaultKieSessionWithNullName() throws Exception { // DROOLS-1276 KieServices ks = KieServices.Factory.get(); buildVersion(ks, "Hello World", "1.0"); ReleaseId releaseId1 = ks.newReleaseId("org.kie", "hello-world", "1.0"); KieSession ksession = ks.newKieContainer(releaseId1).newKieSession((String)null); ksession.insert(new Message("Hello World")); assertEquals( 1, ksession.fireAllRules() ); }
@Test public void testDoNotUpgradeOnOlderVersion() throws Exception { Path tempDir = Files.createTempDirectory(FileSystems.getDefault().getPath("./target"), null); File file2 = null; try { KieServices ks = KieServices.Factory.get(); ReleaseId releaseIdNew = ks.newReleaseId( "org.kie", "scanner-test", "1.1.0" ); ReleaseId releaseIdOld = ks.newReleaseId( "org.kie", "scanner-test", "1.0.0" ); createKieJar( ks, releaseIdNew, "R1" ); KieContainer kieContainer = ks.newKieContainer( releaseIdNew ); KieSession ksession = kieContainer.newKieSession(); checkKSession( ksession, "R1" ); KieScanner scanner = ks.newKieScanner( kieContainer, tempDir.toString() ); file2 = write( createKieJar( ks, releaseIdOld, "R2" ), tempDir, releaseIdOld ); scanner.scanNow(); ksession = kieContainer.newKieSession(); checkKSession( ksession, "R1" ); } finally { if (file2 != null) { file2.delete(); } Files.delete(tempDir); } }
public void init() { final KieServices ks = KieServices.Factory.get(); KieFileSystem kfs = ks.newKieFileSystem(); KieModuleModel kmodule = ks.newKieModuleModel(); KieBaseModel baseModel = kmodule.newKieBaseModel( "defaultKBase" ).setDefault( true ); baseModel.newKieSessionModel( "defaultKSession" ).setDefault( true ); kfs.writeKModuleXML( kmodule.toXML() ); kfs.write( ks.getResources().newClassPathResource( "decimalSeparator.xls", this.getClass() ) ); // README when path is set then test works KieBuilder kieBuilder = ks.newKieBuilder( kfs ).buildAll(); assertEquals( 0, kieBuilder.getResults().getMessages( org.kie.api.builder.Message.Level.ERROR ).size() ); ksession = ks.newKieContainer( ks.getRepository().getDefaultReleaseId() ).newKieSession(); }