protected static Resource buildResource(String resourceString, String targetPath) throws IOException { String content = readResourceToString(resourceString); Resource resource = kieServices.getResources().newReaderResource(new StringReader(content), "UTF-8"); resource.setTargetPath(targetPath); if (resourceString.endsWith(".java")) { resource.setResourceType(ResourceType.JAVA); } return resource; }
@Test(timeout=10000) public void testTimerStartDateISO() throws Exception { NodeLeftCountDownProcessEventListener countDownListener = new NodeLeftCountDownProcessEventListener("StartProcess", 1); byte[] content = IoUtils.readBytesFromInputStream(this.getClass().getResourceAsStream("/BPMN2-TimerStartDate.bpmn2")); String processContent = new String(content, "UTF-8"); OffsetDateTime plusTwoSeconds = OffsetDateTime.now().plusSeconds(2); processContent = processContent.replaceFirst("#\\{date\\}", plusTwoSeconds.toString()); Resource resource = ResourceFactory.newReaderResource(new StringReader(processContent)); resource.setSourcePath("/BPMN2-TimerStartDate.bpmn2"); resource.setTargetPath("/BPMN2-TimerStartDate.bpmn2"); KieBase kbase = createKnowledgeBaseFromResources(resource); ksession = createKnowledgeSession(kbase); ksession.addEventListener(countDownListener); final List<Long> list = new ArrayList<Long>(); ksession.addEventListener(new DefaultProcessEventListener() { public void beforeProcessStarted(ProcessStartedEvent event) { list.add(event.getProcessInstance().getId()); } }); assertThat(list.size()).isEqualTo(0); countDownListener.waitTillCompleted(); assertThat(list.size()).isEqualTo(1); }
resource.setTargetPath(processResource.getTargetPath());
protected List<Resource> buildAndDumpBPMN2Process(String process) throws SAXException, IOException { KnowledgeBuilderConfiguration conf = KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration(); ((KnowledgeBuilderConfigurationImpl) conf).initSemanticModules(); ((KnowledgeBuilderConfigurationImpl) conf).addSemanticModule(new BPMNSemanticModule()); ((KnowledgeBuilderConfigurationImpl) conf).addSemanticModule(new BPMNDISemanticModule()); ((KnowledgeBuilderConfigurationImpl) conf).addSemanticModule(new BPMNExtensionsSemanticModule()); Resource classpathResource = ResourceFactory.newClassPathResource(process); // Dump and reread XmlProcessReader processReader = new XmlProcessReader(((KnowledgeBuilderConfigurationImpl) conf).getSemanticModules(), getClass().getClassLoader()); List<Process> processes = processReader.read(this.getClass().getResourceAsStream("/" + process)); List<Resource> resources = new ArrayList<Resource>(); for (Process p : processes) { RuleFlowProcess ruleFlowProcess = (RuleFlowProcess) p; String dumpedString = XmlBPMNProcessDumper.INSTANCE.dump(ruleFlowProcess); Resource resource = ResourceFactory.newReaderResource(new StringReader(dumpedString)); resource.setSourcePath(classpathResource.getSourcePath()); resource.setTargetPath(classpathResource.getTargetPath()); resources.add(resource); } return resources; }
"end\n"; Resource resource1 = kieServices.getResources().newReaderResource(new StringReader(drl1), "UTF-8"); resource1.setTargetPath("org/drools/testdrl/rules1.drl"); "end\n"; Resource resource2 = kieServices.getResources().newReaderResource(new StringReader(drl2), "UTF-8"); resource2.setTargetPath("org/drools/testdrl/rules2.drl"); resource3.setTargetPath("org/drools/testjava/Message.java"); resource3.setResourceType(ResourceType.JAVA);
@Test public void testKieFileLogger() throws Exception { String drl = "package org.drools.integrationtests\n" + "import org.drools.compiler.Message;\n" + "rule \"Hello World\"\n" + " when\n" + " m : Message( myMessage : message )\n" + " then\n" + "end"; // get the resource Resource dt = ResourceFactory.newByteArrayResource(drl.getBytes()).setTargetPath( "org/drools/integrationtests/hello.drl" ); // create the builder KieSession ksession = getKieSession(dt); String fileName = "target/testKieFileLogger"; File file = new File(fileName + ".log"); if( file.exists() ) { file.delete(); } KieRuntimeLogger logger = KieServices.Factory.get().getLoggers().newFileLogger( ksession, fileName ); ksession.insert(new Message("Hello World")); int fired = ksession.fireAllRules(); assertEquals( 1, fired ); logger.close(); file = new File( fileName + ".log" ); assertTrue( file.exists() ); assertTrue( file.length() > 0 ); file.delete(); }
"end"; Resource dt = ResourceFactory.newByteArrayResource(drl.getBytes()).setTargetPath( "org/drools/integrationtests/hello.drl" );
@Test public void testKieConsoleLoggerStateless() throws Exception { String drl = "package org.drools.integrationtests\n" + "import org.drools.compiler.Message;\n" + "rule \"Hello World\"\n" + " when\n" + " m : Message( myMessage : message )\n" + " then\n" + "end"; // get the resource Resource dt = ResourceFactory.newByteArrayResource( drl.getBytes() ).setTargetPath("org/drools/integrationtests/hello.drl"); // create the builder StatelessKieSession ksession = getStatelessKieSession(dt); KieRuntimeLogger logger = KieServices.Factory.get().getLoggers().newConsoleLogger( ksession ); AgendaEventListener ael = mock( AgendaEventListener.class ); ksession.addEventListener( ael ); ksession.execute( new Message("Hello World") ); verify( ael ).afterMatchFired( any(AfterMatchFiredEvent.class) ); logger.close(); }
rule.getBytes(StandardCharsets.UTF_8.name()), StandardCharsets.UTF_8.name()); drlResource.setResourceType(ResourceType.DRL); drlResource.setTargetPath("test.drl"); final KieFileSystem kieFileSystem = kieServices.newKieFileSystem(); kieFileSystem.write(drlResource);
@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); }
.setTargetPath("org/drools/compiler/integrationtests/"+this.getClass().getName()+".drl") );
@Test public void testKieConsoleLogger() throws Exception { String drl = "package org.drools.integrationtests\n" + "import org.drools.compiler.Message;\n" + "rule \"Hello World\"\n" + " when\n" + " m : Message( myMessage : message )\n" + " then\n" + "end"; // get the resource Resource dt = ResourceFactory.newByteArrayResource( drl.getBytes() ).setTargetPath( "org/drools/integrationtests/hello.drl" ); // create the builder KieSession ksession = getKieSession( dt ); KieRuntimeLogger logger = KieServices.Factory.get().getLoggers().newConsoleLogger( ksession ); ksession.insert( new Message("Hello World") ); int fired = ksession.fireAllRules(); assertEquals( 1, fired ); logger.close(); }
@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()); }
.setTargetPath("org/drools/compiler/integrationtests/"+this.getClass().getName()+".drl") );
@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()); }
kfs.write( ResourceFactory.newByteArrayResource( str.getBytes() ).setTargetPath( "org/drools/compiler/rules.drl" ) );
@Test public void testNPEOnMutableGlobal() throws Exception { // BZ-1019473 String str = "package org.drools.compiler\n" + "global java.util.List context\n" + "rule B\n" + " when\n" + " Message( message == \"b\" )\n" + " $s : String() from context\n" + " then\n" + " System.out.println($s);\n" + "end"; KieServices ks = KieServices.Factory.get(); KieFileSystem kfs = ks.newKieFileSystem(); kfs.write( ResourceFactory.newByteArrayResource( str.getBytes() ).setTargetPath( "org/drools/compiler/rules.drl" ) ); KieBuilder kbuilder = KieServices.Factory.get().newKieBuilder( kfs ); kbuilder.buildAll(); assertEquals( 0, kbuilder.getResults().getMessages().size() ); ks.newKieContainer( kbuilder.getKieModule().getReleaseId() ).getKieBase(); KieSession ksession = ks.newKieContainer( kbuilder.getKieModule().getReleaseId() ).newKieSession(); assertNotNull( ksession ); List<String> context = new ArrayList<>(); ksession.setGlobal( "context", context ); FactHandle b = ksession.insert( new Message( "b" ) ); ksession.delete( b ); int fired = ksession.fireAllRules( 1 ); assertEquals( 0, fired ); ksession.dispose(); }
.setTargetPath("org/drools/compiler/integrationtests/queries.drl") );
.setTargetPath("org/drools/compiler/integrationtests/queries.drl") );
KieFileSystem kfs = ks.newKieFileSystem(); final Resource drl = ks.getResources().newByteArrayResource( drlString.getBytes() ).setTargetPath("org/jboss/brms/lifecycle.drl"); kfs.write(drl);