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(); logger.warn("There are warning in a score DRL:\n{}", results); kieContainer = kieServices.newKieContainer(kieBuilder.getKieModule().getReleaseId());
@Test public void testClassLoaderGetResources() throws IOException { KieServices kieServices = KieServices.Factory.get(); String drl1 = "package org.drools.testdrl;\n" + "rule R1 when\n" + "then\n" + "end\n"; Resource resource1 = kieServices.getResources().newReaderResource(new StringReader(drl1), "UTF-8"); resource1.setTargetPath("org/drools/testdrl/rules1.drl"); "then\n" + "end\n"; Resource resource2 = kieServices.getResources().newReaderResource(new StringReader(drl2), "UTF-8"); resource2.setTargetPath("org/drools/testdrl/rules2.drl"); Resource resource3 = kieServices.getResources().newReaderResource(new StringReader(java3), "UTF-8"); resource3.setTargetPath("org/drools/testjava/Message.java"); resource3.setResourceType(ResourceType.JAVA); createAndDeployJar(kieServices, kmodule, releaseId, resource1, resource2, resource3); KieContainer kieContainer = kieServices.newKieContainer(releaseId);
public KieHelper addFromClassPath(String name, String encoding) { InputStream input = getClass().getResourceAsStream(name); if ( input == null && classLoader != null ) { input = classLoader.getResourceAsStream( name ); } if (input == null) { throw new IllegalArgumentException("The file (" + name + ") does not exist as a classpath resource."); } ResourceType type = determineResourceType(name); kfs.write(generateResourceName(type), ks.getResources().newInputStreamResource(input, encoding)); return this; }
@Test public void testEmptyOptionTypeCheckInKModuleDefaultsToNoTypeCheck() { final DMNRuntime runtime = getRuntimeWithTypeCheckOption("", ks.getResources().newClassPathResource("forTypeCheckTest.dmn", this.getClass())); assertNoTypeCheck(runtime); }
String url = "http://localhost:8080/kie-drools-wb/maven2/groupId/artifactId/1.0/artifactId-1.0.jar"; KieServices ks = KieServices.Factory.get(); KieRepository kr = ks.getRepository(); UrlResource urlResource = (UrlResource) ks.getResources() .newUrlResource(url); urlResource.setUsername("admin"); urlResource.setPassword("password"); urlResource.setBasicAuthentication("enabled"); InputStream is = urlResource.getInputStream(); KieModule kModule = kr.addKieModule(ks.getResources() .newInputStreamResource(is)); KieContainer kContainer = ks.newKieContainer(kModule.getReleaseId()); kContainer.newStatelessKieSession();
private static KieSession getKieSession() throws Exception { RuntimeEnvironment environment = RuntimeEnvironmentBuilder.Factory.get().newEmptyBuilder() .addAsset(KieServices.Factory.get().getResources().newClassPathResource("request/requestHandling.bpmn"), ResourceType.BPMN2) .addAsset(KieServices.Factory.get().getResources().newClassPathResource("request/contactCustomer.bpmn"), ResourceType.BPMN2) .addAsset(KieServices.Factory.get().getResources().newClassPathResource("request/validation.drl"), ResourceType.DRL) .addAsset(KieServices.Factory.get().getResources().newClassPathResource("request/eventProcessing.drl"), ResourceType.DRL) .addAsset(KieServices.Factory.get().getResources().newClassPathResource("request/exceptions.drl"), ResourceType.DRL) .addAsset(KieServices.Factory.get().getResources().newClassPathResource("request/adhoc.drl"), ResourceType.DRL) .get(); return RuntimeManagerFactory.Factory.get().newSingletonRuntimeManager(environment).getRuntimeEngine(null).getKieSession(); }
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 testAskTypeCheckInKModule() { final DMNRuntime runtime = getRuntimeWithTypeCheckOption("true", ks.getResources().newClassPathResource("forTypeCheckTest.dmn", this.getClass())); assertPerformTypeCheck(runtime); }
@Test public void testGetDefaultKieSessionModelEmptyKmodule() { KieServices kieServices = KieServices.Factory.get(); String drl = "package org.drools.test\n" + "rule R1 when\n" + " $m : Object()\n" + "then\n" + "end\n"; Resource resource = kieServices.getResources().newReaderResource( new StringReader( drl), "UTF-8" ); resource.setTargetPath("org/drools/test/rules.drl"); String kmodule = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<kmodule xmlns=\"http://www.drools.org/xsd/kmodule\">\n" + "</kmodule>"; // Create an in-memory jar for version 1.0.0 ReleaseId releaseId = kieServices.newReleaseId("org.kie", "test-testGetDefaultKieSessionModelEmptyKmodule", "1.0.0"); createAndDeployJar(kieServices, kmodule, releaseId, resource); KieContainer kieContainer = kieServices.newKieContainer(releaseId); KieSessionModel sessionModel = kieContainer.getKieSessionModel(null); assertNotNull(sessionModel); }
public BuildResults build(final Path resource, final InputStream inputStream) { synchronized (kieFileSystem) { final String destinationPath = destinationPath(resource); final Resource inputStreamResource = KieServices.Factory.get().getResources().newInputStreamResource(new BufferedInputStream(inputStream)); kieFileSystem.write(destinationPath, inputStreamResource); } return build(); }
private static KieSession getKieSession() throws Exception { RuntimeEnvironment environment = RuntimeEnvironmentBuilder.Factory.get().newEmptyBuilder() .addAsset(KieServices.Factory.get().getResources().newClassPathResource("request/requestHandling.bpmn"), ResourceType.BPMN2) .addAsset(KieServices.Factory.get().getResources().newClassPathResource("request/contactCustomer.bpmn"), ResourceType.BPMN2) .addAsset(KieServices.Factory.get().getResources().newClassPathResource("request/validation.drl"), ResourceType.DRL) .addAsset(KieServices.Factory.get().getResources().newClassPathResource("request/eventProcessing.drl"), ResourceType.DRL) .addAsset(KieServices.Factory.get().getResources().newClassPathResource("request/exceptions.drl"), ResourceType.DRL) .addAsset(KieServices.Factory.get().getResources().newClassPathResource("request/adhoc.drl"), ResourceType.DRL) .get(); return RuntimeManagerFactory.Factory.get().newSingletonRuntimeManager(environment).getRuntimeEngine(null).getKieSession(); }
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(); }
@Test public void testExplicitDisableTypeCheckInKModule() { final DMNRuntime runtime = getRuntimeWithTypeCheckOption("false", ks.getResources().newClassPathResource("forTypeCheckTest.dmn", this.getClass())); assertNoTypeCheck(runtime); }
@Test public void testGetDefaultKieSessionModel() { KieServices kieServices = KieServices.Factory.get(); String drl = "package org.drools.test\n" + "rule R1 when\n" + " $m : Object()\n" + "then\n" + "end\n"; Resource resource = kieServices.getResources().newReaderResource( new StringReader( drl), "UTF-8" ); resource.setTargetPath("org/drools/test/rules.drl"); String kmodule = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<kmodule xmlns=\"http://www.drools.org/xsd/kmodule\">\n" + " <kbase name=\"testKbase\" packages=\"org.drools.test\">\n" + " <ksession name=\"testKsession\" default=\"true\"/>\n" + " </kbase>\n" + "</kmodule>"; // Create an in-memory jar for version 1.0.0 ReleaseId releaseId = kieServices.newReleaseId("org.kie", "test-testGetDefaultKieSessionModel", "1.0.0"); createAndDeployJar(kieServices, kmodule, releaseId, resource); KieContainer kieContainer = kieServices.newKieContainer(releaseId); KieSessionModel sessionModel = kieContainer.getKieSessionModel(null); assertNotNull(sessionModel); assertEquals("testKsession", sessionModel.getName()); }
private void visitPaths( final DirectoryStream<org.kie.commons.java.nio.file.Path> directoryStream ) { for ( final org.kie.commons.java.nio.file.Path path : directoryStream ) { if ( Files.isDirectory( path ) ) { visitPaths( Files.newDirectoryStream( path ) ); } else if ( filter.accept( path ) ) { final String destinationPath = path.toUri().toString().substring( projectPrefix.length() + 1 ); final InputStream is = ioService.newInputStream( path ); final BufferedInputStream bis = new BufferedInputStream( is ); kieFileSystem.write( destinationPath, KieServices.Factory.get().getResources().newInputStreamResource( bis ) ); handles.put( destinationPath, paths.convert( path ) ); } } }
public static List<DMNMessage> createExpectingDMNMessages(final String resourceName, final Class testClass) { final KieServices ks = KieServices.Factory.get(); final KieContainer kieContainer = getKieContainerIgnoringErrors(ks.newReleaseId("org.kie", "dmn-test-" + UUID.randomUUID(), "1.0"), ks.getResources().newClassPathResource(resourceName, testClass)); Results verify = kieContainer.verify(); List<Message> kie_messages = verify.getMessages(); LOG.debug("{}", kie_messages); List<DMNMessage> dmnMessages = kie_messages.stream() .filter(DMNMessage.class::isInstance) .map(DMNMessage.class::cast) .collect(Collectors.toList()); assertThat(dmnMessages.isEmpty(), is(false)); return dmnMessages; }
private KieBuilder build(String drl) { KieServices kieServices = KieServices.Factory.get(); KieFileSystem kfs = kieServices.newKieFileSystem(); kfs.write( kieServices.getResources().newByteArrayResource( drl.getBytes() ) .setSourcePath( "test.drl" ) .setResourceType( ResourceType.DRL ) ); KieBuilder kieBuilder = kieServices.newKieBuilder( kfs ); kieBuilder.buildAll(); return kieBuilder; }
@Test public void testUnreckonOptionTypeCheckInKModuleDefaultsToNoTypeCheck() { final DMNRuntime runtime = getRuntimeWithTypeCheckOption("boh", ks.getResources().newClassPathResource("forTypeCheckTest.dmn", this.getClass())); assertNoTypeCheck(runtime); }
@Test public void testMemoryFileSystemFolderUniqueness() { KieServices kieServices = KieServices.Factory.get(); String drl = "package org.drools.test\n" + "rule R1 when\n" + " $m : Object()\n" + "then\n" + "end\n"; Resource resource = kieServices.getResources().newReaderResource( new StringReader( drl), "UTF-8" ); resource.setTargetPath("org/drools/test/rules.drl"); String kmodule = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<kmodule xmlns=\"http://www.drools.org/xsd/kmodule\">\n" + " <kbase name=\"testKbase\" packages=\"org.drools.test\">\n" + " <ksession name=\"testKsession\"/>\n" + " </kbase>\n" + "</kmodule>"; // Create an in-memory jar for version 1.0.0 ReleaseId releaseId = kieServices.newReleaseId("org.kie", "test-delete", "1.0.0"); createAndDeployJar(kieServices, kmodule, releaseId, resource); KieContainer kieContainer = kieServices.newKieContainer(releaseId); KieModule kieModule = ((InternalKieContainer) kieContainer).getMainKieModule(); MemoryFileSystem memoryFileSystem = ((MemoryKieModule) kieModule).getMemoryFileSystem(); Folder rootFolder = memoryFileSystem.getFolder(""); Object[] members = rootFolder.getMembers().toArray(); assertEquals(2, members.length); Folder firstFolder = (Folder) members[0]; Folder secondFolder = (Folder) members[1]; assertEquals(firstFolder.getParent(), secondFolder.getParent()); }
private void addNewResource(final Path path, final InputStream inputStream) { final String destinationPath = destinationPath(path); final Resource inputStreamResource = KieServices.Factory.get().getResources().newInputStreamResource(new BufferedInputStream(inputStream)); kieFileSystem.write(destinationPath, inputStreamResource); handles.put(getBaseFileName(destinationPath), Paths.convert(path)); addJavaClass(path); }