package com.activit;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import java.io.InputStream;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
import org.activiti.bpmn.converter.BpmnXMLConverter;
import org.activiti.bpmn.model.BpmnModel;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngineConfiguration;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.repository.ProcessDeFinition;
import org.activiti.engine.test.Deployment;
import org.junit.Before;
import org.junit.Test;
public class BpmnTest {
ProcessEngine processEngine = null;
RepositoryService repositoryService = null;
RuntimeService runtimeService = null;
TaskService taskService = null;
/** * 加载配置文件 */ @Before public void init() { processEngine = ProcessEngineConfiguration.createProcessEngineConfigurationFromresource("activiti.cfg.xml") .buildProcessEngine(); repositoryService = processEngine.getRepositoryService(); runtimeService = processEngine.getRuntimeService(); taskService = processEngine.getTaskService(); } @Test @Deployment(resources="resources/diagrams/VacationRequest.bpmn") public void testXmltoBpmn() throws XMLStreamException{ ProcessDeFinition processDeFinition =repositoryService.createProcessDeFinitionQuery().processDeFinitionKey("vacationRequest").singleResult(); //获取流程资源的名称 String sourceName = processDeFinition.getResourceName(); //获取流程资源 InputStream inputStream = repositoryService.getResourceAsstream(processDeFinition.getId(),sourceName); //创建转换对象 BpmnXMLConverter converter = new BpmnXMLConverter(); //读取xml文件 XMLInputFactory factory = XMLInputFactory.newInstance(); XMLStreamReader reader = factory.createXMLStreamReader(inputStream); //将xml文件转换成BpmnModel BpmnModel bpmnModel = converter.convertToBpmnModel((XMLStreamReader) reader); //验证bpmnModel是否为空 assertNotNull(bpmnModel); org.activiti.bpmn.model.Process process = bpmnModel.getMainProcess(); //验证转换的流程id assertEquals("leave",process.getId()); }
}
还有一种更加简便的方法
xml 格式直接自动生成bpmn文件。 新建文件: bpmn20.xml文件结尾的 activiti模型。然后copy得到的xml文件,最后open with 用activiti专用的视图打开就可以了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。