package com.activiti.test;
import static org.junit.Assert.*;
import java.io.File;
import java.io.InputStream;
import java.util.List;
import java.util.zip.ZipInputStream;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.impl.pvm.process.ProcessDefinitionImpl;
import org.activiti.engine.repository.DeploymentBuilder;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.repository.ProcessDefinitionQuery;
import org.apache.commons.io.FileUtils;
import org.junit.Test;
/**
* 使用API的步骤: 1)创建流程引擎ProcessEngine 2)获取相关服务对象实例 3)使用服务对象相关方法完成流程操作
*
* @author LANHD
*
*/
public class ProcessDefinitionTest {
// 初始化流程引擎对象
private ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
// 使用流程引擎获取到需要的服务对象实例
private RepositoryService repositoryService = processEngine.getRepositoryService();
// 1.发布规则
/**
*
* 1.发布一个新的流程
* 会在数据库3张表中添加数据:
* act_ge_bytearray 新增了2条数据(“规则文件”和“流程图片”)
* act_re_deployment 新增了1条数据(流程的“显示别名”和“发布时间”)
* act_re_procdef 新增了1条数据(流程规则相关信息[流程定义])
* ID={KEY}:{VERSION}:{随机数}
* @throws Exception
*/
@Test
public void deployProcess() throws Exception {
// 1.创建一个发布配置对象
DeploymentBuilder deploymentBuilder = repositoryService
.createDeployment();
// 2.添加发布的资源文件(“流程规则文件和流程图片”)
InputStream in = Thread.currentThread().getContextClassLoader()
.getResourceAsStream("LeaveFlow.bpmn");
InputStream image = Thread.currentThread().getContextClassLoader()
.getResourceAsStream("LeaveFlow.png");
deploymentBuilder
.name("请假流程")
.addInputStream("LeaveFlow.bpmn", in) //添加规则文件
.addInputStream("LeaveFlow.png", image); //添加规则图片
// 3.完成发布:使用deploy()发布流程
deploymentBuilder.deploy();
}
/**
* 用ZIP方式发布流程
* this.getClass().getClassLoader().getResourceAsStream("LeaveFlow.zip"); 从当前类所在包下加载指定名称文件的输入流
* this.getClass().getClassLoader().getResourceAsStream("/LeaveFlow.zip"); 从ClassPath根目录下加载指定名称文件的输入流
* this.getClass().getContextClassLoader().getResourceAsStream("LeaveFlow.zip") 从ClassPath根目录下加载指定名称文件的输入流
* Thread.currentThread().getContextClassLoader().getResourceAsStream("LeaveFlow.bpmn"); 从Classpath根目录下加载指定名称文件的输入流
*
*若果以ZIP文件方式发布流程,那么在发布成功后,Activiti框架会自动解压ZIP包中的文件,依次添加到act_ge_bytearray表中
*/
@Test
public void deployeProcessByZIP(){
//创建一个发布配置对象
DeploymentBuilder deploymentBuilder=repositoryService.createDeployment();
//添加发布的资源文件
InputStream in=this.getClass().getResourceAsStream("/Leave.zip");
System.out.println(in);
ZipInputStream zipInputStream=new ZipInputStream(in);
// 调用deploy()发布流程
deploymentBuilder.addZipInputStream(zipInputStream);
}
// 2.查看流程定义信息
@Test
public void queryProcessDefinition() throws Exception{
//使用服务对象创建需要的查询对象
ProcessDefinitionQuery definitionQuery=repositoryService.createProcessDefinitionQuery();
//添加查询参数
definitionQuery
//过滤条件
.processDefinitionKey("LeaveFlow")
// .processDefinitionName(processDefinitionName)
// 分页条件
// .listPage(firstResult, maxResults)
// 排序条件
.orderByProcessDefinitionVersion().desc();
//执行查询
List<ProcessDefinition> pds=definitionQuery.list();
for(ProcessDefinition pd:pds){
System.out.println("id:"+pd.getId()+",name:"+pd.getName()+",key:"+pd.getKey()+",version:"+pd.getVersion());
ProcessDefinitionImpl pdImpl=(ProcessDefinitionImpl) repositoryService.getProcessDefinition(pd.getId());
System.out.println(pdImpl.getActivities());
}
}
// 3.删除流程规则
@Test
public void deleteProcess(){
}
// 4.查看流程附件
@Test
public void quertImage() throws Exception{
//获取发布ID
String deploymentId="101";
//查找这次发布的所有资源文件名称
List<String> names= repositoryService.getDeploymentResourceNames(deploymentId);
String imageName=null;
for(String name:names){
if(name.indexOf(".png")>=0){
imageName=name;
}
}
if(imageName!=null){
InputStream in=repositoryService.getResourceAsStream(deploymentId, imageName);
File file=new File("D:/XXX.png");
FileUtils.copyInputStreamToFile(in, file);
}
//获取需要的文件名称
//通过文件名称去数据库中查询对应的输入流
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
activiti.rar (98个子文件)
activiti
.project 433B
bpmn
LeaveFlow2.bpmn 3KB
LeaveFlow2.png 10KB
LeaveFlow.bpmn 3KB
helloworld.png 9KB
Leave.zip 7KB
helloworld.bpmn 3KB
LeaveFlow.png 11KB
src
test
main
resources
activiti.cfg.xml 1KB
java
com
activiti
test
HelloWorldTest.java 2KB
ProcessDefinitionTest.java 5KB
EnvTest.java 1KB
ProcessInstanceTest.java 4KB
lib
javaGeom-0.11.0.jar 347KB
activiti-modeler-5.13.jar 10KB
activiti-rest-5.13.jar 396KB
jgraphx-1.10.4.2.jar 609KB
spring-aop-3.1.2.RELEASE.jar 325KB
activiti-bpmn-layout-5.13-sources.jar 10KB
org.restlet-2.0.15.jar 657KB
activation-1.1.jar 62KB
activiti-camel-5.13-sources.jar 16KB
spring-tx-3.1.2.RELEASE.jar 239KB
activiti-bpmn-layout-5.13.jar 19KB
commons-lang-2.4.jar 256KB
commons-email-1.2.jar 32KB
activiti-json-converter-5.13-sources.jar 44KB
activiti-cxf-5.13.jar 14KB
activiti-cdi-sources.jar 50KB
activiti-rest-5.13-sources.jar 292KB
org.restlet.ext.jackson-2.0.15.jar 6KB
activiti-cxf-5.13-sources.jar 7KB
activiti-diagram-rest-5.13.jar 15KB
activiti-spring-5.13.jar 59KB
activiti-mule-5.13.jar 5KB
spring-core-3.1.2.RELEASE.jar 439KB
commons-dbcp-1.4.jar 157KB
spring-expression-3.1.2.RELEASE.jar 172KB
activiti-common-rest-5.13.jar 23KB
spring-context-3.1.2.RELEASE.jar 813KB
spring-orm-3.1.2.RELEASE.jar 371KB
log4j-1.2.17.jar 478KB
mysql-connector-java-5.1.26.jar 836KB
commons-pool-1.5.4.jar 94KB
spring-asm-3.1.2.RELEASE.jar 52KB
activiti-bpmn-converter-5.13.jar 150KB
slf4j-api-1.7.2.jar 25KB
activiti-camel-5.13.jar 20KB
joda-time-2.1.jar 557KB
commons-io-2.0.1.jar 156KB
activiti-modeler-5.13-sources.jar 7KB
junit-4.11.jar 239KB
activiti-bpmn-model-5.13.jar 57KB
activiti-cdi.jar 53KB
mail-1.4.1.jar 437KB
commons-fileupload-1.2.2.jar 58KB
spring-beans-3.1.2.RELEASE.jar 578KB
activiti-bpmn-converter-5.13-sources.jar 118KB
hamcrest-core-1.3.jar 44KB
mybatis-3.2.2.jar 683KB
org.restlet.ext.servlet-2.0.15.jar 22KB
activiti-osgi-5.13.jar 48KB
activiti-diagram-rest-5.13-sources.jar 8KB
activiti-engine-5.13.jar 1.34MB
jackson-mapper-asl-1.9.9.jar 762KB
aopalliance-1.0.jar 4KB
activiti-simple-workflow-5.13.jar 80KB
jackson-core-asl-1.9.9.jar 227KB
activiti-osgi-5.13-sources.jar 26KB
activiti-bpmn-model-5.13-sources.jar 53KB
activiti-json-converter-5.13.jar 65KB
h2-1.3.170.jar 1.4MB
activiti-simple-workflow-5.13-sources.jar 74KB
slf4j-log4j12-1.7.2.jar 9KB
activiti-mule-5.13-sources.jar 2KB
activiti-explorer-5.13-sources.jar 438KB
activiti-spring-5.13-sources.jar 46KB
org.restlet.ext.fileupload-2.0.15.jar 3KB
activiti-engine-5.13-sources.jar 1.16MB
activiti-explorer-5.13.jar 727KB
jcl-over-slf4j-1.7.2.jar 16KB
activiti-common-rest-5.13-sources.jar 18KB
spring-jdbc-3.1.2.RELEASE.jar 395KB
target
classes
LeaveFlow2.bpmn 3KB
activiti.cfg.xml 1KB
LeaveFlow2.png 10KB
LeaveFlow.bpmn 3KB
helloworld.png 9KB
Leave.zip 7KB
com
activiti
test
EnvTest.class 1KB
ProcessDefinitionTest.class 5KB
ProcessInstanceTest.class 6KB
HelloWorldTest.class 4KB
helloworld.bpmn 3KB
LeaveFlow.png 11KB
.settings
org.eclipse.core.resources.prefs 57B
pom.xml 2KB
.classpath 5KB
共 98 条
- 1
资源评论
jackie-cs
- 粉丝: 3
- 资源: 54
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功