public DeploymentBuilder addBpmnModel(String resourceName, BpmnModel bpmnModel) { BpmnXMLConverter bpmnXMLConverter = new BpmnXMLConverter(); try { String bpmn20Xml = new String(bpmnXMLConverter.convertToXML(bpmnModel), "UTF-8"); addString(resourceName, bpmn20Xml); } catch (UnsupportedEncodingException e) { throw new ActivitiException("Error while transforming BPMN model to xml: not UTF-8 encoded", e); } return this; }
protected boolean validateModel(Resource resource, final RepositoryService repositoryService) { try { BpmnXMLConverter converter = new BpmnXMLConverter(); BpmnModel bpmnModel = converter.convertToBpmnModel(new InputStreamSource(resource.getInputStream()), true, false);
BpmnXMLConverter xmlConverter = new BpmnXMLConverter(); exportBytes = xmlConverter.convertToXML(bpmnModel); filename = mainProcessId + ".bpmn20.xml";
@PostMapping("/{modelId}/deploy") @ApiOperation("发布模型") @Authorize(action = "deploy") public ResponseMessage<Deployment> deployModel(@PathVariable String modelId) throws Exception { Model modelData = repositoryService.getModel(modelId); if (modelData == null) { throw new NotFoundException("模型不存在!"); } ObjectNode modelNode = (ObjectNode) new ObjectMapper().readTree(repositoryService.getModelEditorSource(modelData.getId())); BpmnModel model = new BpmnJsonConverter().convertToBpmnModel(modelNode); byte[] bpmnBytes = new BpmnXMLConverter().convertToXML(model); String processName = modelData.getName() + ".bpmn20.xml"; Deployment deployment = repositoryService.createDeployment() .name(modelData.getName()) .addString(processName, new String(bpmnBytes, "utf8")) .deploy(); return ResponseMessage.ok(deployment).include(Deployment.class, "id", "name", "new"); }
InputStreamReader in = new InputStreamReader(bpmnStream, "UTF-8"); XMLStreamReader xtr = xif.createXMLStreamReader(in); BpmnModel bpmnModel = new BpmnXMLConverter().convertToBpmnModel(xtr);
BpmnXMLConverter converter = new BpmnXMLConverter();
/** * 导出model的xml文件 */ @RequestMapping(value = "/model/export/xml/{modelId}", method = RequestMethod.GET) public void exportXml(@PathVariable("modelId") String modelId, HttpServletResponse response) { try { Model modelData = repositoryService.getModel(modelId); BpmnJsonConverter jsonConverter = new BpmnJsonConverter(); JsonNode editorNode = objectMapper.readTree(repositoryService.getModelEditorSource(modelData.getId())); BpmnModel bpmnModel = jsonConverter.convertToBpmnModel(editorNode); BpmnXMLConverter xmlConverter = new BpmnXMLConverter(); //没有xml if (bpmnModel.getProcesses().isEmpty()) { response.setCharacterEncoding("utf-8"); response.getWriter().print("<script>modals.error('xml文件不存在,生成错误');</script>"); response.flushBuffer(); return; } byte[] bpmnBytes = xmlConverter.convertToXML(bpmnModel); ByteArrayInputStream in = new ByteArrayInputStream(bpmnBytes); IOUtils.copy(in, response.getOutputStream()); String filename = bpmnModel.getMainProcess().getId() + ".bpmn20.model.xml"; response.setHeader("Content-Disposition", "attachment; filename=" + filename); response.flushBuffer(); } catch (Exception e) { LOGGER.error("导出model的xml文件失败:modelId={}", modelId, e); } }
public static void importModel(RepositoryService repositoryService, File modelFile) throws IOException, XMLStreamException { InputStreamReader reader = new InputStreamReader(new FileInputStream(modelFile), "utf-8"); String fileContent = IOUtils.readStringAndClose(reader, (int) modelFile.length()); BpmnModel bpmnModel = new BpmnXMLConverter().convertToBpmnModel(new StringStreamSourceEx(fileContent), false, false); String processName = bpmnModel.getMainProcess().getName(); if (processName == null || processName.isEmpty()) { processName = bpmnModel.getMainProcess().getId(); } Model modelData = repositoryService.newModel(); ObjectNode modelObjectNode = new ObjectMapper().createObjectNode(); modelObjectNode.put(ModelDataJsonConstants.MODEL_NAME, processName); modelObjectNode.put(ModelDataJsonConstants.MODEL_REVISION, 1); modelData.setMetaInfo(modelObjectNode.toString()); modelData.setName(processName); modelData.setKey(modelFile.getName()); repositoryService.saveModel(modelData); repositoryService.addModelEditorSource(modelData.getId(), fileContent.getBytes("utf-8")); Logger.getLogger(ModelUtils.class) .info(String.format("importing model file: %s", modelFile.getCanonicalPath())); } }
JsonNode editorNode = objectMapper.readTree(repositoryService.getModelEditorSource(modelData.getId())); BpmnModel bpmnModel = jsonConverter.convertToBpmnModel(editorNode); BpmnXMLConverter xmlConverter = new BpmnXMLConverter(); byte[] bpmnBytes = xmlConverter.convertToXML(bpmnModel);
byte[] bpmnBytes = new BpmnXMLConverter().convertToXML(model); Result xml = generateResource("xml", id, request); Result image = generateResource("image", id, request);
public static BpmnXMLConverter getBpmnXMLConverter() { return new BpmnXMLConverter(); }
/** * Constructs BPMN model from the XML string and validates * * @param xmlString the Activiti XML * * @return the BPMN Model. * @throws UnsupportedEncodingException if the encoding wasn't supported. * @throws XMLStreamException if the XML couldn't be streamed. */ public BpmnModel constructBpmnModelFromXmlAndValidate(String xmlString) throws UnsupportedEncodingException, XMLStreamException { InputStreamSource source = new InputStreamSource(new ByteArrayInputStream(xmlString.trim().getBytes(Charsets.UTF_8))); return new BpmnXMLConverter().convertToBpmnModel(source, true, true); } }
/** * Returns the BPMN 2.0 xml which is the converted version of the * provided {@link WorkflowDefinition}. */ public String getBpmn20Xml() { if (bpmnModel == null) { convert(); } BpmnXMLConverter bpmnXMLConverter = new BpmnXMLConverter(); return new String(bpmnXMLConverter.convertToXML(bpmnModel)); } }
/** * Constructs BPMN model from the XML string and validates * * @param xmlString the Activiti XML * * @return the BPMN Model. * @throws UnsupportedEncodingException if the encoding wasn't supported. * @throws XMLStreamException if the XML couldn't be streamed. */ public BpmnModel constructBpmnModelFromXmlAndValidate(String xmlString) throws UnsupportedEncodingException, XMLStreamException { InputStreamSource source = new InputStreamSource(new ByteArrayInputStream(xmlString.trim().getBytes(Charsets.UTF_8))); return new BpmnXMLConverter().convertToBpmnModel(source, true, true); } }
public DeploymentBuilder addBpmnModel(String resourceName, BpmnModel bpmnModel) { BpmnXMLConverter bpmnXMLConverter = new BpmnXMLConverter(); try { String bpmn20Xml = new String(bpmnXMLConverter.convertToXML(bpmnModel), "UTF-8"); addString(resourceName, bpmn20Xml); } catch (UnsupportedEncodingException e) { throw new ActivitiException("Error while transforming BPMN model to xml: not UTF-8 encoded", e); } return this; }
public DeploymentBuilder addBpmnModel(String resourceName, BpmnModel bpmnModel) { BpmnXMLConverter bpmnXMLConverter = new BpmnXMLConverter(); try { String bpmn20Xml = new String(bpmnXMLConverter.convertToXML(bpmnModel), "UTF-8"); addString(resourceName, bpmn20Xml); } catch (UnsupportedEncodingException e) { throw new ActivitiException("Errot while transforming BPMN model to xml: not UTF-8 encoded", e); } return this; }
/** * Gets the Activiti XML from the specified BPMN model. The returned XML will have CDATA wrappers removed. * * @param bpmnModel the model. * * @return the Activiti XML. */ protected String getActivitiXmlFromBpmnModel(BpmnModel bpmnModel) { return new String(new BpmnXMLConverter().convertToXML(bpmnModel)).replace("<![CDATA[", "").replaceAll("]]>", ""); }
@RequestMapping(value = "/model/export/{id}", method = RequestMethod.GET) public void exportToXml(@PathVariable("id") String id, HttpServletResponse response) { try { Model modelData = repositoryService.getModel(id); BpmnJsonConverter jsonConverter = new BpmnJsonConverter(); JsonNode editorNode = new ObjectMapper().readTree(repositoryService.getModelEditorSource(modelData.getId())); BpmnModel bpmnModel = jsonConverter.convertToBpmnModel(editorNode); BpmnXMLConverter xmlConverter = new BpmnXMLConverter(); byte[] bpmnBytes = xmlConverter.convertToXML(bpmnModel); ByteArrayInputStream in = new ByteArrayInputStream(bpmnBytes); IOUtils.copy(in, response.getOutputStream()); String filename = bpmnModel.getMainProcess().getId() + ".bpmn20.xml"; response.setHeader("Content-Disposition", "attachment; filename=" + filename); response.flushBuffer(); } catch (Exception e) { throw new ActivitiException("导出model的xml文件失败,模型ID=" + id, e); } }
protected void deployModelerModel(final ObjectNode modelNode) { BpmnModel model = new BpmnJsonConverter().convertToBpmnModel(modelNode); byte[] bpmnBytes = new BpmnXMLConverter().convertToXML(model); String processName = modelData.getName() + ".bpmn20.xml"; Deployment deployment = repositoryService.createDeployment() .name(modelData.getName()) .addString(processName, new String(bpmnBytes)) .deploy(); ExplorerApp.get().getViewManager().showDeploymentPage(deployment.getId()); }
@RequiresPermissions("flowdefine") @RequestMapping("/admin/flowdefine/view_add") public String add(ModelMap model) { BpmnModel bpmnModel = new BpmnModel(); Process process = new Process(); process.setName("流程名称"); bpmnModel.addProcess(process); process.addFlowElement(createStartEvent()); process.addFlowElement(createEndEvent()); process.addFlowElement(createSequenceFlow("start", "end")); process.setId("my-process"); BpmnXMLConverter bpmnXMLConverter = new BpmnXMLConverter(); byte[] convertToXML = bpmnXMLConverter.convertToXML(bpmnModel); String bytes = new String(convertToXML); model.addAttribute("content", bytes); return "/admin/flowdefine/add"; }