protected InternalKieModule createKieJar(KieServices ks, ReleaseId releaseId, List<String> resources ) { KieFileSystem kfs = createKieFileSystemWithKProject(ks); kfs.writePomXML( getPom(releaseId) ); for (String resource : resources) { kfs.write("src/main/resources/rules/" + resource, ResourceFactory.newClassPathResource(resource)); } KieBuilder kieBuilder = ks.newKieBuilder(kfs); if (!kieBuilder.buildAll().getResults().getMessages().isEmpty()) { for (Message message : kieBuilder.buildAll().getResults().getMessages()) { logger.error("Error Message: ({}) {}", message.getPath(), message.getText()); } throw new RuntimeException( "There are errors builing the package, please check your knowledge assets!"); } return ( InternalKieModule ) kieBuilder.getKieModule(); }
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(); }
public static byte[] buildKJar(KieServices ks, KieFileSystem kfs, ReleaseId releaseId) { KieBuilder kb = ks.newKieBuilder(kfs).buildAll(); if (kb.getResults().hasMessages(Message.Level.ERROR)) { for (Message result : kb.getResults().getMessages()) { System.out.println(result.getText()); } return null; } InternalKieModule kieModule = (InternalKieModule) ks.getRepository() .getKieModule(releaseId); byte[] jar = kieModule.getBytes(); return jar; }
@Test public void testKieModuleDependencies() throws ClassNotFoundException, InterruptedException, IOException { KieServices ks = KieServices.Factory.get(); ReleaseId releaseId1 = KieServices.Factory.get().newReleaseId(namespace1, "memory", "1.0"); KieModuleModel kProj1 = createKieProject(namespace1); KieFileSystem kfs1 = KieServices.Factory.get().newKieFileSystem(); generateAll(kfs1, namespace1, releaseId1, kProj1); kb1.buildAll(); if ( kb1.getResults().hasMessages(Level.ERROR) ) { fail("Unable to build KieJar\n" + kb1.getResults( ).toString() ); kieBase2.addInclude( namespace1 ); KieFileSystem kfs2 = KieServices.Factory.get().newKieFileSystem(); generateAll(kfs2, namespace2, releaseId2, kProj2); kb2.buildAll(); if ( kb2.getResults().hasMessages(Level.ERROR) ) { fail("Unable to build KieJar\n" + kb2.getResults( ).toString() );
@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 ) ); }
public void createAndTestKieContainer(ReleaseId releaseId, KieBuilder kb, String kBaseName) throws IOException, ClassNotFoundException, InterruptedException { KieServices ks = KieServices.Factory.get(); kb.buildAll(); if ( kb.getResults().hasMessages(Level.ERROR) ) { fail("Unable to build KieModule\n" + kb.getResults( ).toString() ); } KieRepository kr = ks.getRepository(); KieModule kJar = kr.getKieModule(releaseId); assertNotNull( kJar ); KieContainer kContainer = ks.newKieContainer(releaseId); KieBase kBase = kBaseName != null ? kContainer.getKieBase( kBaseName ) : kContainer.getKieBase(); KieSession kSession = kBase.newKieSession(); List list = new ArrayList(); kSession.setGlobal( "list", list ); kSession.fireAllRules(); assertEquals( 1, list.size() ); assertEquals( "org.kie.test.Message", list.get(0).getClass().getName() ); }
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(); } }
protected InternalKieModule createKieJar(KieServices ks, ReleaseId releaseId, Map<String, String> resources, ReleaseId... dependencies) { KieFileSystem kfs = createKieFileSystemWithKProject(ks); kfs.writePomXML(getPom(releaseId, dependencies)); for (Map.Entry<String, String> entry : resources.entrySet()) { kfs.write(entry.getKey(), ResourceFactory .newByteArrayResource(entry.getValue().getBytes())); } KieBuilder kieBuilder = ks.newKieBuilder(kfs); if (!kieBuilder.buildAll().getResults().getMessages().isEmpty()) { for (Message message : kieBuilder.buildAll().getResults() .getMessages()) { logger.error("Error Message: ({}) {}", message.getPath(), message.getText()); } throw new RuntimeException( "There are errors builing the package, please check your knowledge assets!"); } return (InternalKieModule) kieBuilder.getKieModule(); }
@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 ) ); }
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)) { throw new IllegalStateException("There are errors in a score DRL:\n"
protected InternalKieModule createKieJar(KieServices ks, ReleaseId releaseId, List<String> resources ) { KieFileSystem kfs = createKieFileSystemWithKProject(ks); kfs.writePomXML( getPom(releaseId) ); for (String resource : resources) { kfs.write("src/main/resources/KBase-test/" + resource, ResourceFactory.newClassPathResource(resource)); } KieBuilder kieBuilder = ks.newKieBuilder(kfs); if (!kieBuilder.buildAll().getResults().getMessages().isEmpty()) { for (Message message : kieBuilder.buildAll().getResults().getMessages()) { logger.error("Error Message: ({}) {}", message.getPath(), message.getText()); } throw new RuntimeException( "There are errors builing the package, please check your knowledge assets!"); } return ( InternalKieModule ) kieBuilder.getKieModule(); }
@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 InternalKieModule createKieJarWithClass(KieServices ks, ReleaseId releaseId, int value) throws IOException { KieFileSystem kfs = createKieFileSystemWithKProject(ks, false); kfs.writePomXML(getPom(releaseId)); kfs.write("src/main/resources/KBase1/rule1.drl", createDRL(value)); KieBuilder kieBuilder = ks.newKieBuilder(kfs); assertTrue("", kieBuilder.buildAll().getResults().getMessages().isEmpty()); return (InternalKieModule) kieBuilder.getKieModule(); }
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 if (kb.getResults().hasMessages(Level.ERROR)) { throw new RuntimeException("Build Errors:\n" + kb.getResults().toString()); kfs.write(ResourceFactory.newFileResource(packageFile)); kb = ks.newKieBuilder(kfs); kb.buildAll(); // kieModule is automatically deployed to KieRepository if (kb.getResults().hasMessages(Level.ERROR)) { throw new RuntimeException("Build Errors:\n" + kb.getResults().toString());
protected InternalKieModule createKieJarWithClass(KieServices ks, ReleaseId releaseId, int value) throws IOException { KieFileSystem kfs = createKieFileSystemWithKProject(ks, false); kfs.writePomXML(getPom(releaseId)); kfs.write("src/main/resources/KBase1/rule1.drl", createDRL(value)); KieBuilder kieBuilder = ks.newKieBuilder(kfs); assertTrue("", kieBuilder.buildAll().getResults().getMessages().isEmpty()); return (InternalKieModule) kieBuilder.getKieModule(); }
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();
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(); }
private KieServices populateKieFileSystem(Resource dt) { KieServices ks = KieServices.Factory.get(); KieFileSystem kfs = ks.newKieFileSystem().write( dt ); KieBuilder kb = ks.newKieBuilder( kfs ).buildAll(); assertTrue( kb.getResults().getMessages().isEmpty() ); return ks; } }
public static void assertDrlHasCompilationError( String str, int errorNr ) { KieServices ks = KieServices.Factory.get(); KieFileSystem kfs = ks.newKieFileSystem().write( "src/main/resources/r1.drl", str ); org.kie.api.builder.Results results = ks.newKieBuilder( kfs ).buildAll().getResults(); if ( errorNr > 0 ) { assertEquals( errorNr, results.getMessages().size() ); } else { assertTrue( results.getMessages().size() > 0 ); } } }
@Test public void testReportKBuilderErrorWhenUsingAJavaClassWithNoPkg() { // BZ-995018 final String java = "public class JavaClass { }\n"; final KieServices ks = KieServices.Factory.get(); final KieFileSystem kfs = ks.newKieFileSystem() .write( "src/main/java/JavaClass.java", java ); final Results results = ks.newKieBuilder( kfs ).buildAll().getResults(); System.out.println( results.getMessages() ); assertEquals( 1, results.getMessages().size() ); }