@Bean public KieContainer kieShippingDecisionContainer() { KieServices kieServices = KieServices.Factory.get(); KieFileSystem kieFileSystem = kieServices.newKieFileSystem(); kieFileSystem.write(ResourceFactory.newClassPathResource(SHIPPING_DECISION)); KieBuilder kieBuilder = kieServices.newKieBuilder(kieFileSystem); kieBuilder.buildAll(); KieModule kieModule = kieBuilder.getKieModule(); return kieServices.newKieContainer(kieModule.getReleaseId()); }
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 @Ignore("RHPAM-1184, RHDM-601") public void testBuildPercentageAndWhiteSpaceInName() throws Exception { final KieServices ks = KieServices.Factory.get(); final KieFileSystem kfs = ks.newKieFileSystem(); kfs.write("src/main/resources/my rule 100% okay.rdrl", ResourceFactory.newInputStreamResource(this.getClass().getResourceAsStream("my rule 100% okay.rdrl"))); final KieBuilderSetImpl kieBuilderSet = new KieBuilderSetImpl(kieBuilder(ks, kfs)); kieBuilderSet.setFiles(new String[]{"src/main/resources/my rule 100% okay.rdrl"}); final IncrementalResults build = kieBuilderSet.build(); assertEquals(0, build.getAddedMessages().size()); assertEquals(0, build.getRemovedMessages().size()); }
@Test public void testInMemory() throws ClassNotFoundException, InterruptedException, IOException { String namespace = "org.kie.test"; ReleaseId releaseId = KieServices.Factory.get().newReleaseId( namespace, "memory", "1.0" ); KieModuleModel kProj = createKieProject( namespace ); KieFileSystem kfs = KieServices.Factory.get().newKieFileSystem(); generateAll( kfs, namespace, releaseId, kProj ); createAndTestKieContainer( releaseId, createKieBuilder( kfs ), namespace ); }
@Test public void testInvalidProjectXml() throws ClassNotFoundException, InterruptedException, IOException { String namespace = "org.kie.test"; KieModuleModel kProj = createKieProject( namespace ); ReleaseId releaseId = KieServices.Factory.get().newReleaseId( namespace, "memory", "1.0" ); KieFileSystem kfs = KieServices.Factory.get().newKieFileSystem(); generatePomXML( kfs, releaseId ); kfs.writeKModuleXML( "xxxx" ); generateMessageClass( kfs, namespace ); generateRule( kfs, namespace ); KieBuilder kieBuilder = createKieBuilder(kfs); kieBuilder.buildAll(); assertTrue( kieBuilder.getResults().hasMessages( Level.ERROR ) ); }
@Test public void testInvalidPomXmlGAV() throws ClassNotFoundException, InterruptedException, IOException { String namespace = "org.kie.test"; KieModuleModel kProj = createKieProject(namespace); ReleaseId releaseId = new ReleaseIdImpl( "", "", "" ); KieFileSystem kfs = KieServices.Factory.get().newKieFileSystem(); generatePomXML( kfs, releaseId ); generateMessageClass( kfs, namespace ); generateRule( kfs, namespace ); MemoryFileSystem mfs = ((KieFileSystemImpl)kfs).asMemoryFileSystem(); KieBuilder kieBuilder = createKieBuilder( kfs ); kieBuilder.buildAll(); assertTrue( kieBuilder.getResults().hasMessages( Level.ERROR ) ); }
@Bean public KieContainer kieManufacturerBasedPricingContainer() { KieServices kieServices = KieServices.Factory.get(); KieFileSystem kieFileSystem = kieServices.newKieFileSystem(); kieFileSystem.write(ResourceFactory.newClassPathResource(MANUFACTURER_BASED_PRICING)); KieBuilder kieBuilder = kieServices.newKieBuilder(kieFileSystem); kieBuilder.buildAll(); KieModule kieModule = kieBuilder.getKieModule(); return kieServices.newKieContainer(kieModule.getReleaseId()); }
@Test public void testNoPomAndProjectXml() throws ClassNotFoundException, InterruptedException, IOException { String namespace = "org.kie.test"; ReleaseId releaseId = KieServices.Factory.get().getRepository().getDefaultReleaseId(); KieFileSystem kfs = KieServices.Factory.get().newKieFileSystem(); generateMessageClass( kfs, namespace ); generateRule( kfs, namespace ); MemoryFileSystem mfs = ((KieFileSystemImpl)kfs).asMemoryFileSystem(); createAndTestKieContainer( releaseId, createKieBuilder( kfs ), null ); }
@Test public void testBuild() throws Exception { final KieServices ks = KieServices.Factory.get(); final KieFileSystem kfs = ks.newKieFileSystem(); kfs.write( "src/main/resources/rule%201.drl", ruleContent() ); final KieBuilderSetImpl kieBuilderSet = new KieBuilderSetImpl( kieBuilder( ks, kfs ) ); kieBuilderSet.setFiles( new String[]{ "src/main/resources/rule%201.drl" } ); final IncrementalResults build = kieBuilderSet.build(); assertEquals( 0, build.getAddedMessages().size() ); assertEquals( 0, build.getRemovedMessages().size() ); }
/** * This container goes along with shipping custom payment module determines pricing based on * different criterias * * @return */ @Bean public KieContainer kieShippingCustomContainer() { KieServices kieServices = KieServices.Factory.get(); KieFileSystem kieFileSystem = kieServices.newKieFileSystem(); kieFileSystem.write(ResourceFactory.newClassPathResource(SHIPPING_CUSTOM)); KieBuilder kieBuilder = kieServices.newKieBuilder(kieFileSystem); kieBuilder.buildAll(); KieModule kieModule = kieBuilder.getKieModule(); return kieServices.newKieContainer(kieModule.getReleaseId()); }
@Test public void testNoProjectXml() throws ClassNotFoundException, InterruptedException, IOException { String namespace = "org.kie.test"; ReleaseId releaseId = KieServices.Factory.get().newReleaseId( namespace, "memory", "1.0" ); KieFileSystem kfs = KieServices.Factory.get().newKieFileSystem(); generatePomXML( kfs, releaseId ); generateMessageClass( kfs, namespace ); generateRule( kfs, namespace ); MemoryFileSystem mfs = ((KieFileSystemImpl)kfs).asMemoryFileSystem(); createAndTestKieContainer(releaseId, createKieBuilder(kfs), null ); }
KieServices kieServices = KieServices.Factory.get(); KieResources kieResources = kieServices.getResources(); KieFileSystem kieFileSystem = kieServices.newKieFileSystem(); if (!ConfigUtils.isEmptyCollection(scoreDrlList)) { ClassLoader actualClassLoader = configContext.determineActualClassLoader(); kieFileSystem.write(kieResources.newClassPathResource(scoreDrl, "UTF-8", actualClassLoader)); + ") does not exist."); kieFileSystem.write(kieResources.newFileSystemResource(scoreDrlFile, "UTF-8")); kieFileSystem.writeKModuleXML(kmodel.toXML()); KieBuilder kieBuilder = kieServices.newKieBuilder(kieFileSystem); kieBuilder.buildAll(); Results results = kieBuilder.getResults(); if (results.hasMessages(Message.Level.ERROR)) {
@Test public void testOnDisc() throws ClassNotFoundException, InterruptedException, IOException { String namespace = "org.kie.test"; KieModuleModel kProj = createKieProject(namespace); ReleaseId releaseId = KieServices.Factory.get().newReleaseId(namespace, "memory", "1.0"); KieFileSystem kfs = KieServices.Factory.get().newKieFileSystem(); generateAll(kfs, namespace, releaseId, kProj); MemoryFileSystem mfs = ((KieFileSystemImpl)kfs).asMemoryFileSystem(); File file = fileManager.getRootDirectory() ; mfs.writeAsFs( file ); createAndTestKieContainer(releaseId, createKieBuilder(kfs), namespace); }
protected KieBase createKnowledgeBaseFromResources(Resource... process) throws Exception { KieServices ks = KieServices.Factory.get(); KieRepository kr = ks.getRepository(); if (process.length > 0) { KieFileSystem kfs = ks.newKieFileSystem(); for (Resource p : process) { kfs.write(p); } KieBuilder kb = ks.newKieBuilder(kfs); kb.buildAll(); // kieModule is automatically deployed to KieRepository // if successfully built. if (kb.getResults().hasMessages(Level.ERROR)) { throw new RuntimeException("Build Errors:\n" + kb.getResults().toString()); } } KieContainer kContainer = ks.newKieContainer(kr.getDefaultReleaseId()); return kContainer.getKieBase(); }
@Test public void testNoPomXml() throws ClassNotFoundException, InterruptedException, IOException { String namespace = "org.kie.test"; KieModuleModel kProj = createKieProject( namespace ); ReleaseId releaseId = KieServices.Factory.get().getRepository().getDefaultReleaseId(); KieFileSystem kfs = KieServices.Factory.get().newKieFileSystem(); generateKProjectXML( kfs, namespace, kProj ); generateMessageClass( kfs, namespace ); generateRule( kfs, namespace ); MemoryFileSystem mfs = ((KieFileSystemImpl)kfs).asMemoryFileSystem(); createAndTestKieContainer( releaseId, createKieBuilder( kfs ), namespace ); }
protected KieBase createKnowledgeBaseFromResources(Resource... cases) throws Exception { KieServices ks = KieServices.Factory.get(); KieRepository kr = ks.getRepository(); if (cases.length > 0) { KieFileSystem kfs = ks.newKieFileSystem(); for (Resource c : cases) { kfs.write(c); } KieBuilder kb = ks.newKieBuilder(kfs); kb.buildAll(); // kieModule is automatically deployed to KieRepository // if successfully built. if (kb.getResults().hasMessages(Level.ERROR)) { throw new RuntimeException("Build Errors:\n" + kb.getResults().toString()); } } KieContainer kContainer = ks.newKieContainer(kr.getDefaultReleaseId()); return kContainer.getKieBase(); } }
@Test public void testEmptyProjectXml() throws ClassNotFoundException, InterruptedException, IOException { String namespace = "org.kie.test"; KieServices ks = KieServices.Factory.get(); KieModuleModel kProj = ks.newKieModuleModel(); ReleaseId releaseId = KieServices.Factory.get().newReleaseId(namespace, "memory", "1.0"); KieFileSystem kfs = KieServices.Factory.get().newKieFileSystem(); generateKProjectXML( kfs, namespace, kProj ); generatePomXML(kfs, releaseId); generateMessageClass( kfs, namespace ); generateRule( kfs, namespace ); MemoryFileSystem mfs = ((KieFileSystemImpl)kfs).asMemoryFileSystem(); createAndTestKieContainer(releaseId, createKieBuilder(kfs), null ); }
@Test public void testIncrementalProcessCompilation() throws Exception { String invalidProcessDefinition = getResource( "/BPMN2-Incremental-Build-Invalid.bpmn2" ); String validProcessDefinition = getResource( "/BPMN2-Incremental-Build-Valid.bpmn2" ); KieServices ks = KieServices.Factory.get(); //This process file contains 4 errors KieFileSystem kfs = ks.newKieFileSystem().write( "src/main/resources/p1.bpmn2", invalidProcessDefinition ); KieBuilder kieBuilder = ks.newKieBuilder( kfs ).buildAll(); Results results = kieBuilder.getResults(); assertEquals( 3, results.getMessages( org.kie.api.builder.Message.Level.ERROR ).size() ); //This process file has the errors fixed kfs.write("src/main/resources/p1.bpmn2", validProcessDefinition); IncrementalResults addResults = ((InternalKieBuilder)kieBuilder).createFileSet("src/main/resources/p1.bpmn2").build(); //I'd expect the 4 previous errors to be cleared assertEquals( 0, addResults.getAddedMessages().size() ); assertEquals( 3, addResults.getRemovedMessages().size() ); }
protected KieBase createKnowledgeBaseFromDisc(String process) throws Exception { KieServices ks = KieServices.Factory.get(); KieRepository kr = ks.getRepository(); KieFileSystem kfs = ks.newKieFileSystem(); kfs.write(res); KieBuilder kb = ks.newKieBuilder(kfs); kb.buildAll(); // kieModule is automatically deployed to KieRepository kfs.write(ResourceFactory.newFileResource(packageFile)); kb = ks.newKieBuilder(kfs); kb.buildAll(); // kieModule is automatically deployed to KieRepository
@Test public void testExtendingDate() { // BZ-1072629 String str = "import " + MyDate.class.getCanonicalName() + " \n" + "rule 'sample rule' \n" + "when \n" + " $date: MyDate() \n" + "then \n" + "$date.setDescription(\"test\"); \n" + "end \n"; KieServices ks = KieServices.Factory.get(); KieFileSystem kfs = ks.newKieFileSystem().write( "src/main/resources/r1.drl", str ); Results results = ks.newKieBuilder( kfs ).buildAll().getResults(); assertEquals( 0, results.getMessages().size() ); }