Created
April 4, 2013 11:57
-
-
Save henryyan/5309794 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package org.activiti.designer.test.bugs; | |
import java.io.File; | |
import java.io.InputStream; | |
import org.activiti.bpmn.model.BpmnModel; | |
import org.activiti.engine.RepositoryService; | |
import org.activiti.engine.impl.bpmn.diagram.ProcessDiagramGenerator; | |
import org.activiti.engine.repository.ProcessDefinition; | |
import org.activiti.engine.test.ActivitiRule; | |
import org.activiti.engine.test.Deployment; | |
import org.apache.commons.io.FileUtils; | |
import org.junit.Rule; | |
import org.junit.Test; | |
import org.slf4j.Logger; | |
import org.slf4j.LoggerFactory; | |
public class FixFlowTextInDiagram { | |
private static Logger logger = LoggerFactory.getLogger(FixFlowTextInDiagram.class); | |
@Rule | |
public ActivitiRule activitiRule = new ActivitiRule(); | |
@Test | |
@Deployment(resources = { "diagrams/bugs/leave.bpmn" }) | |
public void startProcess() throws Exception { | |
RepositoryService repositoryService = activitiRule.getRepositoryService(); | |
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().singleResult(); | |
BpmnModel bpmnModel = repositoryService.getBpmnModel(processDefinition.getId()); | |
InputStream resourceAsStream = ProcessDiagramGenerator.generatePngDiagram(bpmnModel); | |
byte[] b = new byte[resourceAsStream.available()]; | |
@SuppressWarnings("unused") | |
int len = -1; | |
resourceAsStream.read(b, 0, b.length); | |
// create file if not exist | |
String diagramDir = "/Users/henryyan"; | |
File diagramDirFile = new File(diagramDir); | |
if (!diagramDirFile.exists()) { | |
diagramDirFile.mkdirs(); | |
} | |
String diagramPath = diagramDir + "/leave.png"; | |
File file = new File(diagramPath); | |
// 文件存在退出 | |
if (file.exists()) { | |
// 文件大小相同时直接返回否则重新创建文件(可能损坏) | |
logger.debug("diagram exist, ignore... : {}", diagramPath); | |
} else { | |
file.createNewFile(); | |
} | |
logger.debug("export diagram to : {}", diagramPath); | |
// wirte bytes to file | |
FileUtils.writeByteArrayToFile(file, b); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment