private XmlBPMNProcessDumper() { semanticModule = new BPMNSemanticModule(); }
@Override public Process readProcess(String processXml) { SemanticModules semanticModules = new SemanticModules(); semanticModules.addSemanticModule(new BPMNSemanticModule()); semanticModules.addSemanticModule(new BPMNExtensionsSemanticModule()); semanticModules.addSemanticModule(new BPMNDISemanticModule()); XmlProcessReader xmlReader = new XmlProcessReader(semanticModules, Thread.currentThread().getContextClassLoader()); try { List<Process> processes = xmlReader.read(new StringReader(processXml)); return processes.get(0); } catch (Throwable t) { t.printStackTrace(); return null; } } }
public void configurePackageBuilder(KnowledgeBuilder knowledgeBuilder) { KnowledgeBuilderConfigurationImpl conf = ((KnowledgeBuilderImpl) knowledgeBuilder).getBuilderConfiguration(); if (conf.getSemanticModules().getSemanticModule(BPMNSemanticModule.BPMN2_URI) == null) { conf.addSemanticModule(new BPMNSemanticModule()); conf.addSemanticModule(new BPMNDISemanticModule()); conf.addSemanticModule(new BPMNExtensionsSemanticModule()); } }
public void testInvalidXML() throws Exception, SAXException { SemanticModules modules = new SemanticModules(); modules.addSemanticModule(new BPMNSemanticModule()); modules.addSemanticModule(new BPMNDISemanticModule()); XmlProcessReader processReader = new XmlProcessReader(modules, getClass().getClassLoader()) { @Override protected String processParserMessage(LinkedList<Object> parents, org.xml.sax.Attributes attr, String errorMessage) { setErrorMessage(super.processParserMessage(parents, attr, errorMessage)); return errorMessage; } }; processReader.read(BPMN2XMLTest.class.getResourceAsStream("/BPMN2-XMLProcessWithError.bpmn2")); assertNotNull(getErrorMessage()); assertThat(getErrorMessage()).contains("Process Info: id:error.process, pkg:org.jbpm, name:errorprocess, version:1.0 \n" + "Node Info: id:_F8A89567-7416-4CCA-9CCD-BC1DDE870F1E name: \n" + "Parser message: (null: 45, 181): cvc-complex-type.2.4.a: Invalid content was found"); }
public void testInvalidXMLInCompositeNode() throws Exception, SAXException { SemanticModules modules = new SemanticModules(); modules.addSemanticModule(new BPMNSemanticModule()); modules.addSemanticModule(new BPMNDISemanticModule()); XmlProcessReader processReader = new XmlProcessReader(modules, getClass().getClassLoader()) { @Override protected String processParserMessage(LinkedList<Object> parents, org.xml.sax.Attributes attr, String errorMessage) { setErrorMessage(super.processParserMessage(parents, attr, errorMessage)); return errorMessage; } }; processReader.read(BPMN2XMLTest.class.getResourceAsStream("/BPMN2-XMLProcessWithErrorInCompositeNode.bpmn2")); assertNotNull(getErrorMessage()); assertThat(getErrorMessage()).contains("Process Info: id:abc.abc, pkg:org.drools.bpmn2, name:abc, version:1.0 \n" + "Node Info: id:_47489F3D-FEBD-4452-B62E-B04EF191C6C3 name: \n" + "Parser message: (null: 24, 185): cvc-complex-type.2.4.a: Invalid content was found"); }
public void testXML() throws IOException, SAXException { SemanticModules modules = new SemanticModules(); modules.addSemanticModule(new BPMNSemanticModule()); modules.addSemanticModule(new BPMNDISemanticModule()); XmlProcessReader processReader = new XmlProcessReader(modules, getClass().getClassLoader());
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; }
private XmlBPMNProcessDumper() { semanticModule = new BPMNSemanticModule(); }
@PostConstruct protected void init() { modules = new SemanticModules(); modules.addSemanticModule(new BPMNSemanticModule()); modules.addSemanticModule(new BPMNDISemanticModule()); }
@Override public Process readProcess(String processXml) { SemanticModules semanticModules = new SemanticModules(); semanticModules.addSemanticModule(new BPMNSemanticModule()); semanticModules.addSemanticModule(new BPMNExtensionsSemanticModule()); semanticModules.addSemanticModule(new BPMNDISemanticModule()); XmlProcessReader xmlReader = new XmlProcessReader(semanticModules, Thread.currentThread().getContextClassLoader()); try { List<Process> processes = xmlReader.read(new StringReader(processXml)); return processes.get(0); } catch (Throwable t) { t.printStackTrace(); return null; } } }
public void configurePackageBuilder(KnowledgeBuilder knowledgeBuilder) { KnowledgeBuilderConfigurationImpl conf = ((KnowledgeBuilderImpl) knowledgeBuilder).getBuilderConfiguration(); if (conf.getSemanticModules().getSemanticModule(BPMNSemanticModule.BPMN2_URI) == null) { conf.addSemanticModule(new BPMNSemanticModule()); conf.addSemanticModule(new BPMNDISemanticModule()); conf.addSemanticModule(new BPMNExtensionsSemanticModule()); } }
KnowledgeBuilderConfigurationImpl configuration = new KnowledgeBuilderConfigurationImpl(); SemanticModules modules = configuration.getSemanticModules(); modules.addSemanticModule(new BPMNSemanticModule()); modules.addSemanticModule(new BPMNDISemanticModule()); modules.addSemanticModule(new BPMNExtensionsSemanticModule());
public void testInvalidXML() throws Exception, SAXException { SemanticModules modules = new SemanticModules(); modules.addSemanticModule(new BPMNSemanticModule()); modules.addSemanticModule(new BPMNDISemanticModule()); XmlProcessReader processReader = new XmlProcessReader(modules, getClass().getClassLoader()) { @Override protected String processParserMessage(LinkedList<Object> parents, org.xml.sax.Attributes attr, String errorMessage) { setErrorMessage(super.processParserMessage(parents, attr, errorMessage)); return errorMessage; } }; processReader.read(BPMN2XMLTest.class.getResourceAsStream("/BPMN2-XMLProcessWithError.bpmn2")); assertNotNull(getErrorMessage()); assertThat(getErrorMessage()).contains("Process Info: id:error.process, pkg:org.jbpm, name:errorprocess, version:1.0 \n" + "Node Info: id:_F8A89567-7416-4CCA-9CCD-BC1DDE870F1E name: \n" + "Parser message: (null: 45, 181): cvc-complex-type.2.4.a: Invalid content was found"); }
public void testInvalidXMLInCompositeNode() throws Exception, SAXException { SemanticModules modules = new SemanticModules(); modules.addSemanticModule(new BPMNSemanticModule()); modules.addSemanticModule(new BPMNDISemanticModule()); XmlProcessReader processReader = new XmlProcessReader(modules, getClass().getClassLoader()) { @Override protected String processParserMessage(LinkedList<Object> parents, org.xml.sax.Attributes attr, String errorMessage) { setErrorMessage(super.processParserMessage(parents, attr, errorMessage)); return errorMessage; } }; processReader.read(BPMN2XMLTest.class.getResourceAsStream("/BPMN2-XMLProcessWithErrorInCompositeNode.bpmn2")); assertNotNull(getErrorMessage()); assertThat(getErrorMessage()).contains("Process Info: id:abc.abc, pkg:org.drools.bpmn2, name:abc, version:1.0 \n" + "Node Info: id:_47489F3D-FEBD-4452-B62E-B04EF191C6C3 name: \n" + "Parser message: (null: 24, 185): cvc-complex-type.2.4.a: Invalid content was found"); }
KnowledgeBuilderConfigurationImpl configuration = new KnowledgeBuilderConfigurationImpl(); SemanticModules modules = configuration.getSemanticModules(); modules.addSemanticModule(new BPMNSemanticModule()); modules.addSemanticModule(new BPMNDISemanticModule()); modules.addSemanticModule(new BPMNExtensionsSemanticModule());
public void testXML() throws IOException, SAXException { SemanticModules modules = new SemanticModules(); modules.addSemanticModule(new BPMNSemanticModule()); modules.addSemanticModule(new BPMNDISemanticModule()); XmlProcessReader processReader = new XmlProcessReader(modules, getClass().getClassLoader());
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; }