Activiti5第十弹,RepositoryService

package org.mpc.final_activiti;import java.util.List;import org.activiti.engine.IdentityService;import org.activiti.engine.ProcessEngine;import org.activiti.engine.ProcessEngineConfiguration;import org.activiti.engine.RepositoryService;import org.activiti.engine.repository.DeploymentBuilder;import org.junit.Test;public class RepositoryServiceTest {@Testpublic void test() throws Exception {/** ** 获得DeploymentBuilder对象 ** */ProcessEngine engine = ProcessEngineConfiguration.createProcessEngineConfigurationFromResourceDefault().buildProcessEngine();RepositoryService repositoryService = engine.getRepositoryService();IdentityService identityService = engine.getIdentityService();// 创建DeploymentBuilder对象DeploymentBuilder builder = repositoryService.createDeployment();/** ** 添加输入流资源 ** */// InputStream in = new FileInputStream(new File(// "C:/Users/mpc/Desktop/小新/1.jpg"));// builder.addInputStream("testInput", in);// builder.deploy();/** ** 添加classpath资源 ** */// builder.addClasspathResource("2.jpg");// builder.deploy();/** ** 添加字符串资源 ** */// builder.addString("test_txt", "aaabbbcccddddddcccbbbaaa");// builder.deploy();/** ** 添加压缩包资源 ** */// 获取zip文件的输入流// FileInputStream fileInputStream = new FileInputStream(new File(// "C:/Users/mpc/Desktop/小新/test.zip"));// ZipInputStream zin = new ZipInputStream(fileInputStream);// builder.addZipInputStream(zin);// builder.deploy();/** ** 修改部署名称 ** */// builder.name("test");// builder.deploy();\/** ** 过滤重复部署 ** 想要使用过滤重复部署,,一定要给部署实体一个名称 * */// InputStream in = new FileInputStream(new File(// "C:/Users/mpc/Desktop/小新/1.jpg"));// builder.name("d1");// builder.addInputStream("testInput", in).deploy();// DeploymentBuilder builder2 = repositoryService.createDeployment();// InputStream in1 = new FileInputStream(new File(// "C:/Users/mpc/Desktop/小新/1.jpg"));// builder2.name("d1");// builder2.enableDuplicateFiltering();// builder2.addInputStream("testInput", in1).deploy();// DeploymentBuilder builder3 = repositoryService.createDeployment();// builder3.name("d1");// builder3.enableDuplicateFiltering();// InputStream in2 = new FileInputStream(new File(// "C:/Users/mpc/Desktop/小新/2.jpg"));// builder3.addInputStream("testInput", in2).deploy();/** ** 流程部署,也就是部署.bpmn文件 ** */// builder.addClasspathResource("final_activiti/progress/test.bpmn")// .deploy();/** ** 终止与激活流程定义 ** */// Deployment deployment = builder.addClasspathResource(// "final_activiti/progress/test.bpmn").deploy();//// ProcessDefinition definition = repositoryService// .createProcessDefinitionQuery()// .deploymentId(deployment.getId()).singleResult();// repositoryService.suspendProcessDefinitionById(definition.getId());// repositoryService.activateProcessDefinitionById(definition.getId());// repositoryService.suspendProcessDefinitionByKey(definition.getKey());// repositoryService.activateProcessDefinitionByKey(definition.getKey());/** ** 设置流程定义的权限 ** */// repositoryService.addCandidateStarterUser("ptest:3:77504", "37501");// repositoryService.addCandidateStarterGroup("ptest:3:77504", "32501");/** ** 使用我们设置的权限 ** */// 根据用户的信息来获得用户有权开启的流程定义// List<ProcessDefinition> defs = repositoryService// .createProcessDefinitionQuery().startableByUser("37501").list();// Assert.assertEquals("ptest:3:77504", defs.get(0).getId());// 根据流程定义来获取有权开启流程的用户// User user = identityService.createUserQuery()// .potentialStarter("ptest:3:77504").singleResult();// Assert.assertEquals("37501", user.getId());// 根据流程定义获取有权开启流程的用户组// Group group// =identityService.createGroupQuery().potentialStarter("ptest:3:77504").singleResult();// Assert.assertEquals("32501", group.getId());/** ** 查询部署资源 ** */// InputStream in = repositoryService.getResourceAsStream("55001",// "test_txt");// int count = in.available();// byte[] byes = new byte[count];// in.read(byes);// String result = new String(byes);// System.out.println(result);/** ** 查询流程文件 ** */// 查询流程定义实体// ProcessDefinition pef = repositoryService// .createProcessDefinitionQuery().deploymentId("77501")// .singleResult();// 查询资源文件// InputStream in = repositoryService.getProcessModel(pef.getId());// 读取输入流// int count = in.available();// byte[] b = new byte[count];// in.read(b);// System.out.println(new String(b));/** ** 查询流程图 ** */// ProcessDefinition processDefinition = repositoryService// .createProcessDefinitionQuery().deploymentId("77501")// .singleResult();// InputStream in =// repositoryService.getProcessDiagram(processDefinition// .getId());// BufferedImage img = ImageIO.read(in);// File file = new File("d:/result.png");// if (!file.exists())// file.createNewFile();// FileOutputStream out = new FileOutputStream(file);// ImageIO.write(img, "png", out);// in.close();// out.close();/** ** 查询部署资源名称 ** */// List<String> names = repositoryService// .getDeploymentResourceNames("77501");// for (String s : names) {// System.out.println(s);// }/** ** 删除部署资源 ** */// repositoryService.deleteDeployment("77501");}}

尝到你和你在一起的快乐,你是唯一能让我尝到酸甜苦辣的人。

Activiti5第十弹,RepositoryService

相关文章:

你感兴趣的文章:

标签云: