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 {

	@Test
	public 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");
	}

}

时间: 2024-10-02 04:36:21

Activiti5第十弹,RepositoryService的相关文章

重操JS旧业第十弹:闭包

闭包是js最难理解,也是最蛋疼的一个名词,仿佛只可意会不可言传一样,有人说闭包说白了就是函数嵌套,也有人说闭包就是函数能够访问函数外部的变量,而内部的外部访问不了: 貌似都非常有道理,其实仔细想来只不过说到了闭包的一些表现特性,以及闭包存在的作用和道理. 好吧,真的是很难理解,以后理解了再写55555555555

Python3 学习第十弹: 模块学习三之数字处理

math模块 提供基础的数学函数, cos(3.14) = -0.999..(弧度制) acos(1) = 0.0 sqrt(9) = 3.0 degrees(3.14) = 179.9999..(弧度转角度) radians(180) = 3.1415926..(角度转弧度) 常量 pi = 3.1415.. e = 2.7182.. cmath模块(complex math, 复数) 支持复数的运算, >>>import cmath >>>cmath.sqrt(-1

第十弹:DPM

一.论文翻译 摘要 本文介绍了一个基于混合多尺度可变形部件模型(mixtures of multiscale deformablepart model)的目标检测系统.此系统可以表示各种多变的目标并且在PASCAL目标检测挑战赛上达到了目前最优结果(state-of-the-art).虽然可变形部件模型现在很流行,但它的价值并没有在类似PASCAL这种较难的测试集上进行展示.此系统依赖于使用未完全标注(partially labeled)的样本进行判别训练的新方法.我们提出了一种间隔敏感(mar

Activiti5第十一弹,流程监听器与任务监听器

首先创建流程监听器和任务监听器的实体类,个人比较喜欢使用Delegate Expression方式,其他两种方式也可以 流程监听器 package org.mpc.final_activiti; import java.io.Serializable; import org.activiti.engine.delegate.DelegateExecution; import org.activiti.engine.delegate.ExecutionListener; import org.ac

『PyTorch』第十弹_循环神经网络

『cs231n』作业3问题1选讲_通过代码理解RNN&图像标注训练 对于torch中的RNN相关类,有原始和原始Cell之分,其中RNN和RNNCell层的区别在于前者一次能够处理整个序列,而后者一次只处理序列中一个时间点的数据,前者封装更完备更易于使用,后者更具灵活性.实际上RNN层的一种后端实现方式就是调用RNNCell来实现的. 一.nn.RNN import torch as t from torch import nn from torch.autograd import Variab

『MXNet』专题汇总

MXNet文档 MXNet官方教程 框架介绍 『MXNet』第一弹_基础架构及API 『MXNet』第二弹_Gluon构建模型 『MXNet』第三弹_Gluon模型参数 『MXNet』第四弹_Gluon自定义层 『MXNet』第五弹_MXNet.image图像处理 『MXNet』第六弹_Gluon性能提升 『MXNet』第七弹_多GPU并行程序设计 『MXNet』第八弹_数据处理API_上 『MXNet』第九弹_分类器以及迁移学习DEMO 『MXNet』第十弹_物体检测SSD 『MXNet』第八

『TensorFlow &#215; MXNet』SSD项目复现经验

为了加深理解,我对SSD项目进行了复现,基于原版,有按照自己理解的修改, 项目见github:SSD_Realization_TensorFlow.SSD_Realization_MXNet 构建思路按照训练主函数的步骤顺序,文末贴了出来,下面我们按照这个顺序简要介绍一下各个流程的重点,想要详细了解的建议看一看之前的解读源码的对应篇章(tf),或者看看李沐博士的ssd介绍视频(虽然不太详细,不过结合讲义思路很清晰,参见:『MXNet』第十弹_物体检测SSD). 重点说明 SSD架构主要有四个部分

JavaScript基础--小案例:在网页指定位置弹出错误信息(十二)

案例分析:点击按钮后,在网页上指定区域,提示错误信息!5秒后,错误信息提示自动消失! 1 <script languag="javascript" type="text/javascript"> 2 var clearId; 3 function test(){ 4 document.getElementById("showMsg").style.cssText="width:200px;height:50px;left:6

Android学习笔记二十之Toast吐司、Notification通知、PopupWindow弹出窗

Android学习笔记二十之Toast吐司.Notification通知.PopupWindow弹出窗 Toast吐司 Toast吐司是我们经常用到的一个控件,Toast是AndroidOS用来显示消息的一种机制,它与Dialog不同,Toast不会获取到焦点,通常显示一段时间之后就会自动消失,下面我们来介绍Toast的几种常用方式: 第一种,默认显示方式,也是最常用的方式: Toast.makeText(MainActivity.this, "这是默认的显示方式", Toast.LE