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; }
if (resource.getSourcePath() != null ) { String path = resource.getSourcePath(); String worksheetName = null; boolean replaceConfig = true; ResourceConfiguration config = resource.getConfiguration(); if( config != null && config instanceof DecisionTableConfiguration ) { DecisionTableInputType realType = DecisionTableInputType.valueOf(typeStr);
public static ResourceType determineResourceType(final String resourceName) { for (ResourceType type : CACHE.values()) { if (type.matchesExtension(resourceName)) { return type; } } return null; }
byte[] data = IoUtils.readBytesFromInputStream(processResource.getInputStream()); String processAsString = new String(data, "UTF-8"); resource.setSourcePath(processResource.getSourcePath()); resource.setTargetPath(processResource.getTargetPath());
@Test public void testProcessFactory() throws Exception { RuleFlowProcessFactory factory = RuleFlowProcessFactory.createProcess("org.jbpm.process"); factory // header .name("My process").packageName("org.jbpm") // nodes .startNode(1).name("Start").done() .actionNode(2).name("Action") .action("java", "System.out.println(\"Action\");").done() .endNode(3).name("End").done() // connections .connection(1, 2) .connection(2, 3); RuleFlowProcess process = factory.validate().getProcess(); Resource res = ResourceFactory.newByteArrayResource(XmlBPMNProcessDumper.INSTANCE.dump(process).getBytes()); res.setSourcePath("/tmp/processFactory.bpmn2"); // source path or target path must be set to be added into kbase KieBase kbase = createKnowledgeBaseFromResources(res); StatefulKnowledgeSession ksession = createKnowledgeSession(kbase); ksession.startProcess("org.jbpm.process"); ksession.dispose(); }
@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); }
if (duplicateProcess != null) { Resource duplicatedResource = duplicateProcess.getResource(); if (resource == null || duplicatedResource == null || duplicatedResource.getSourcePath() == null || duplicatedResource.getSourcePath().equals(resource.getSourcePath())) { this.errors.add(new DuplicateProcess(process, this.knowledgeBuilder.getBuilderConfiguration()));
kieFileSystem.write(kieResources.newClassPathResource(scoreDrl, "UTF-8", actualClassLoader)); + ") does not exist."); kieFileSystem.write(kieResources.newFileSystemResource(scoreDrlFile, "UTF-8"));
@Test public void addAssetXLSDtableWithOwnConfigTest() { Resource resource = ResourceFactory.newClassPathResource("/data/resource.xls", getClass()); DecisionTableConfigurationImpl config = new DecisionTableConfigurationImpl(); config.setInputType(DecisionTableInputType.XLS); String worksheetName = "test-worksheet-name"; config.setWorksheetName(worksheetName); resource.setConfiguration(config); environment.addAsset(resource, ResourceType.DTABLE); verify(this.kbuilder).add(any(Resource.class), any(ResourceType.class)); } }
public List<Process> addProcessFromXml(final Resource resource) throws IOException { Reader reader = resource.getReader(); KnowledgeBuilderConfigurationImpl configuration = knowledgeBuilder.getBuilderConfiguration(); XmlProcessReader xmlReader = new XmlProcessReader( configuration.getSemanticModules(), knowledgeBuilder.getRootClassLoader() );
public static ResourceType addResourceTypeToRegistry(final String resourceType, final String description, final String defaultPath, final String defaultExtension, final String... otherExtensions) { ResourceType resource = new ResourceType( resourceType, description, defaultPath, defaultExtension, otherExtensions ); CACHE.put( resourceType, resource ); return resource; }
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; }
res.setSourcePath("/tmp/processFactory.bpmn2"); KieBase kbase = createKnowledgeBaseFromResources(res); StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
kfs.delete(res.getSourcePath()); kfs.write(ResourceFactory.newFileResource(packageFile));
@Test public void addAssetCsvXlsReplaceConfigTest() { // config preserved ArgumentCaptor<ResourceConfiguration> resourceConfigCaptor = ArgumentCaptor.forClass(ResourceConfiguration.class); doThrow(new IllegalStateException("XLS resource not handled correctly!")).when(this.kbuilder).add(any(Resource.class), any(ResourceType.class)); Resource resource = ResourceFactory.newClassPathResource("/data/resource.xls", getClass()); DecisionTableConfigurationImpl config = new DecisionTableConfigurationImpl(); config.setInputType(DecisionTableInputType.CSV); String worksheetName = "test-worksheet-name"; config.setWorksheetName(worksheetName); resource.setConfiguration(config); // do method environment.addAsset(resource, ResourceType.DTABLE); verify(this.kbuilder).add(any(Resource.class), any(ResourceType.class), resourceConfigCaptor.capture()); ResourceConfiguration replacedConfig = resourceConfigCaptor.getValue(); assertTrue("Not a DecisionTableConfiguration, but a " + replacedConfig.getClass().getSimpleName(), replacedConfig instanceof DecisionTableConfiguration); assertEquals("Incorrect file type", DecisionTableInputType.XLS, ((DecisionTableConfiguration) replacedConfig).getInputType()); assertEquals("Worksheet name not preserved", worksheetName, ((DecisionTableConfiguration) replacedConfig).getWorksheetName()); }
res.setSourcePath("/tmp/processFactory.bpmn2"); // source path or target path must be set to be added into kbase KieBase kbase = createKnowledgeBaseFromResources(res); StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
res.setSourcePath("/tmp/processFactory.bpmn2"); // source path or target path must be set to be added into kbase KieBase kbase = createKnowledgeBaseFromResources(res); StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
res.setSourcePath("/tmp/processFactory.bpmn2"); // source path or target path must be set to be added into kbase KieBase kbase = createKnowledgeBaseFromResources(res); StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
res.setSourcePath("/tmp/processFactory.bpmn2"); // source path or target path must be set to be added into kbase KieBase kbase = createKnowledgeBaseFromResources(res); StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);
.newByteArrayResource(XmlRuleFlowProcessDumper.INSTANCE.dump( process).getBytes()); resource.setSourcePath("/tmp/dynamicProcess.bpmn2"); // source path or target path must be set to be added into kbase KieBase kbase = createKnowledgeBaseFromResources(resource); StatefulKnowledgeSession ksession = createKnowledgeSession(kbase);