package com.zcc.activiti02;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngineConfiguration;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.repository.ProcessDefinitionQuery;
import org.apache.commons.io.IOUtils;
import java.io.*;
/**
* 从act_ge_bytearray表中查询资源文件并保存到桌面文件夹中
*
*/
public class QueryBpmnFile {
public static void main(String[] args) {
//创建流程引擎配置类
ProcessEngineConfiguration processEngineConfiguration=
ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml");
//流程引擎对象
ProcessEngine processEngine = processEngineConfiguration.buildProcessEngine();
RepositoryService repositoryService = processEngine.getRepositoryService();
//获取查询器
ProcessDefinitionQuery processDefinitionQuery = repositoryService.createProcessDefinitionQuery();
//设置查询条件
processDefinitionQuery.processDefinitionKey("myProcess");
//执行查询操作,得到想要流程定义信息
ProcessDefinition processDefinition = processDefinitionQuery.singleResult();
//通过流程定义信息得到部署id
String deploymentId = processDefinition.getDeploymentId();
//实现读写bpmn文件信息
InputStream bpmnIs = repositoryService.getResourceAsStream(deploymentId, processDefinition.getResourceName());
//构建输出流
FileOutputStream bpmnOs = null;
try {
bpmnOs = new FileOutputStream("C:\Users\Administrator\Desktop\新建文件夹\"+processDefinition.getResourceName());
} catch (FileNotFoundException e) {
e.printStackTrace();
}
//输入流,输出流的转换
try {
IOUtils.copy(bpmnIs,bpmnOs);
} catch (IOException e) {
e.printStackTrace();
}
}
}