org.springframework.core.io.ContextResource#org.activiti.engine.repository.DeploymentBuilder源码实例Demo

下面列出了org.springframework.core.io.ContextResource#org.activiti.engine.repository.DeploymentBuilder 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

public static void main(String[] args) throws Exception {
	// 新建流程引擎
	ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
	// 存储服务
	RepositoryService repositoryService = engine.getRepositoryService();
	// 新建部署构造器
	DeploymentBuilder deploymentBuilder = repositoryService.createDeployment();
	String resourceName = "My Process";
	BpmnModel bpmnModel = createProcessModel();
	// 发布部署构造器
	deploymentBuilder.addBpmnModel(resourceName, bpmnModel);
	// 发布部署构造器
	deploymentBuilder.deploy();
	// 关闭流程引擎
	engine.close();
}
 
public static void main(String[] args) throws Exception {
	// 新建流程引擎
	ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
	// 存储服务
	RepositoryService repositoryService = engine.getRepositoryService();
	// 新建部署构造器
	DeploymentBuilder deploymentBuilder = repositoryService
			.createDeployment();
	deploymentBuilder.addClasspathResource("my_text.txt");
	Deployment deployment = deploymentBuilder.deploy();
	// 数据查询
	InputStream inputStream = repositoryService.getResourceAsStream(
			deployment.getId(), "my_text.txt");
	int count = inputStream.available();
	byte[] contents = new byte[count];
	inputStream.read(contents);
	String result = new String(contents);
	// 输入结果
	System.out.println(result);
	// 关闭流程引擎
	engine.close();
}
 
public static void main(String[] args) throws Exception {
	// 新建流程引擎
	ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
	// 存储服务
	RepositoryService repositoryService = engine.getRepositoryService();
	// 新建部署构造器
	DeploymentBuilder deploymentBuilder = repositoryService.createDeployment();
	// 新建文件输入流
	FileInputStream fileInputStream = new FileInputStream(new File("resources/datas.zip"));
	// 新建Zip输入流
	ZipInputStream zipInputStream = new ZipInputStream(fileInputStream);
	// 将Zip输入流添加到部署构造器中
	deploymentBuilder.addZipInputStream(zipInputStream);
	// 发布部署构造器
	deploymentBuilder.deploy();
	// 关闭流程引擎
	engine.close();
}
 
public static void main(String[] args) {           
// 新建流程引擎
ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
// 存储服务
RepositoryService repositoryService = engine.getRepositoryService();
// 新建部署构造器
DeploymentBuilder deploymentBuilder = repositoryService.createDeployment();
// 增加错误的schema文件(包括无效的标签)<test>test</test> 
// 校验报错:发现了以元素 'test' 开头的无效内容。
deploymentBuilder.addClasspathResource("error/schema_error.bpmn");
// 禁用Schema验证
deploymentBuilder.disableSchemaValidation();
// 发布部署构造器
deploymentBuilder.deploy();
// 关闭流程引擎
engine.close();
  }
 
public static void main(String[] args) {       
// 新建流程引擎
ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
// 存储服务
RepositoryService repositoryService = engine.getRepositoryService();
// 新建部署构造器
DeploymentBuilder deploymentBuilder = repositoryService.createDeployment();
// 增加错误的schema文件(包括无效的标签)<test>test</test>
// 报错信息:[Validation set: 'activiti-executable-process' | 
//Problem: 'activiti-start-event-multiple-found'] : 
//Multiple none start events are not supported - 
//[Extra info : processDefinitionId = myProcess | 
// processDefinitionName = My process |  | id = startevent1 |  
//| activityName = Start | ] ( line: 4, column: 47)
deploymentBuilder.addClasspathResource("error/bpmn_error.bpmn");
// 禁用Bpmn验证
deploymentBuilder.disableBpmnValidation();
// 发布部署构造器
deploymentBuilder.deploy();
// 关闭流程引擎
engine.close();
  }
 
public static void main(String[] args) throws Exception {
	// 新建流程引擎
	ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
	// 存储服务
	RepositoryService repositoryService = engine.getRepositoryService();
	// 新建部署构造器
	DeploymentBuilder deploymentBuilder = repositoryService.createDeployment();
	String resourceName = "My Process";
	BpmnModel bpmnModel = createProcessModel();
	// 发布部署构造器
	deploymentBuilder.addBpmnModel(resourceName, bpmnModel);
	// 发布部署构造器
	deploymentBuilder.deploy();
	// 关闭流程引擎
	engine.close();
}
 
public static void main(String[] args) throws Exception {
	// 新建流程引擎
	ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
	// 存储服务
	RepositoryService repositoryService = engine.getRepositoryService();
	// 新建部署构造器
	DeploymentBuilder deploymentBuilder = repositoryService
			.createDeployment();
	deploymentBuilder.addClasspathResource("my_text.txt");
	Deployment deployment = deploymentBuilder.deploy();
	// 数据查询
	InputStream inputStream = repositoryService.getResourceAsStream(
			deployment.getId(), "my_text.txt");
	int count = inputStream.available();
	byte[] contents = new byte[count];
	inputStream.read(contents);
	String result = new String(contents);
	// 输入结果
	System.out.println(result);
	// 关闭流程引擎
	engine.close();
}
 
public static void main(String[] args) throws Exception {
	// 新建流程引擎
	ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
	// 存储服务
	RepositoryService repositoryService = engine.getRepositoryService();
	// 新建部署构造器
	DeploymentBuilder deploymentBuilder = repositoryService.createDeployment();
	// 新建文件输入流
	FileInputStream fileInputStream = new FileInputStream(new File("resources/datas.zip"));
	// 新建Zip输入流
	ZipInputStream zipInputStream = new ZipInputStream(fileInputStream);
	// 将Zip输入流添加到部署构造器中
	deploymentBuilder.addZipInputStream(zipInputStream);
	// 发布部署构造器
	deploymentBuilder.deploy();
	// 关闭流程引擎
	engine.close();
}
 
public static void main(String[] args) {           
// 新建流程引擎
ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
// 存储服务
RepositoryService repositoryService = engine.getRepositoryService();
// 新建部署构造器
DeploymentBuilder deploymentBuilder = repositoryService.createDeployment();
// 增加错误的schema文件(包括无效的标签)<test>test</test> 
// 校验报错:发现了以元素 'test' 开头的无效内容。
deploymentBuilder.addClasspathResource("error/schema_error.bpmn");
// 禁用Schema验证
deploymentBuilder.disableSchemaValidation();
// 发布部署构造器
deploymentBuilder.deploy();
// 关闭流程引擎
engine.close();
  }
 
public static void main(String[] args) {       
// 新建流程引擎
ProcessEngine engine = ProcessEngines.getDefaultProcessEngine();
// 存储服务
RepositoryService repositoryService = engine.getRepositoryService();
// 新建部署构造器
DeploymentBuilder deploymentBuilder = repositoryService.createDeployment();
// 增加错误的schema文件(包括无效的标签)<test>test</test>
// 报错信息:[Validation set: 'activiti-executable-process' | 
//Problem: 'activiti-start-event-multiple-found'] : 
//Multiple none start events are not supported - 
//[Extra info : processDefinitionId = myProcess | 
// processDefinitionName = My process |  | id = startevent1 |  
//| activityName = Start | ] ( line: 4, column: 47)
deploymentBuilder.addClasspathResource("error/bpmn_error.bpmn");
// 禁用Bpmn验证
deploymentBuilder.disableBpmnValidation();
// 发布部署构造器
deploymentBuilder.deploy();
// 关闭流程引擎
engine.close();
  }
 
@Override
public void deployResources(final String deploymentNameHint, final Resource[] resources, final RepositoryService repositoryService) {

  // Create a separate deployment for each resource using the resource
  // name

  for (final Resource resource : resources) {

    final String resourceName = determineResourceName(resource);
    final DeploymentBuilder deploymentBuilder = repositoryService.createDeployment().enableDuplicateFiltering().name(resourceName);

    try {
      if (resourceName.endsWith(".bar") || resourceName.endsWith(".zip") || resourceName.endsWith(".jar")) {
        deploymentBuilder.addZipInputStream(new ZipInputStream(resource.getInputStream()));
      } else {
        deploymentBuilder.addInputStream(resourceName, resource.getInputStream());
      }
    } catch (IOException e) {
      throw new ActivitiException("couldn't auto deploy resource '" + resource + "': " + e.getMessage(), e);
    }

    deploymentBuilder.deploy();
  }
}
 
@Override
public void deployResources(final String deploymentNameHint, final Resource[] resources, final RepositoryService repositoryService) {

  // Create a single deployment for all resources using the name hint as
  // the
  // literal name
  final DeploymentBuilder deploymentBuilder = repositoryService.createDeployment().enableDuplicateFiltering().name(deploymentNameHint);

  for (final Resource resource : resources) {
    final String resourceName = determineResourceName(resource);

    try {
      if (resourceName.endsWith(".bar") || resourceName.endsWith(".zip") || resourceName.endsWith(".jar")) {
        deploymentBuilder.addZipInputStream(new ZipInputStream(resource.getInputStream()));
      } else {
        deploymentBuilder.addInputStream(resourceName, resource.getInputStream());
      }
    } catch (IOException e) {
      throw new ActivitiException("couldn't auto deploy resource '" + resource + "': " + e.getMessage(), e);
    }
  }

  deploymentBuilder.deploy();

}
 
源代码13 项目: activiti6-boot2   文件: DeploymentBuilderImpl.java
public DeploymentBuilder addZipInputStream(ZipInputStream zipInputStream) {
  try {
    ZipEntry entry = zipInputStream.getNextEntry();
    while (entry != null) {
      if (!entry.isDirectory()) {
        String entryName = entry.getName();
        byte[] bytes = IoUtil.readInputStream(zipInputStream, entryName);
        ResourceEntity resource = resourceEntityManager.create();
        resource.setName(entryName);
        resource.setBytes(bytes);
        deployment.addResource(resource);
      }
      entry = zipInputStream.getNextEntry();
    }
  } catch (Exception e) {
    throw new ActivitiException("problem reading zip input stream", e);
  }
  return this;
}
 
源代码14 项目: activiti6-boot2   文件: ProcessDeployer.java
/**
 * Deploys all processes listed in the {@link #PROCESSES_FILE_NAME}-file.
 */
public void deployProcesses() {
  // build a single deployment containing all discovered processes
  Set<String> resourceNames = getResourceNames();
  if (resourceNames.isEmpty()) {
    logger.debug("Not creating a deployment");
    return;
  }
  logger.debug("Start deploying processes.");
  DeploymentBuilder deploymentBuilder = processEngine.getRepositoryService().createDeployment();
  for (String string : resourceNames) {
    logger.info("Adding '" + string + "' to deployment.");
    deploymentBuilder.addClasspathResource(string);
  }
  // deploy the processes
  deploymentBuilder.deploy();
  logger.debug("Done deploying processes.");
}
 
protected String deployProcessDefinition(String... artifacts) {
    DeploymentBuilder deploymentBuilder = activitiProcessEngine.getRepositoryService().createDeployment();
    boolean firstArtifact = true;
    for (String artifact : artifacts)
    {
        InputStream bpmnInputStream = getClass().getClassLoader().getResourceAsStream(artifact);
        String name = artifact.substring(artifact.lastIndexOf("/") + 1);
        if (firstArtifact)
        {
            deploymentBuilder.name(name);
        }
        deploymentBuilder.addInputStream(name, bpmnInputStream);
    }
    String deploymentId = deploymentBuilder.deploy().getId();
    return deploymentId;
}
 
@Override
public void deployResources(final String deploymentNameHint, final Resource[] resources, final RepositoryService repositoryService) {

    // Create a separate deployment for each resource using the resource
    // name

    for (final Resource resource : resources) {

        final String resourceName = determineResourceName(resource);
        final DeploymentBuilder deploymentBuilder = repositoryService.createDeployment().enableDuplicateFiltering().name(resourceName);

        try {
            if (resourceName.endsWith(".bar") || resourceName.endsWith(".zip") || resourceName.endsWith(".jar")) {
                deploymentBuilder.addZipInputStream(new ZipInputStream(resource.getInputStream()));
            } else {
                deploymentBuilder.addInputStream(resourceName, resource.getInputStream());
            }
        } catch (IOException e) {
            throw new ActivitiException("couldn't auto deploy resource '" + resource + "': " + e.getMessage(), e);
        }

        deploymentBuilder.deploy();
    }
}
 
@Override
public void deployResources(final String deploymentNameHint, final Resource[] resources, final RepositoryService repositoryService) {

    // Create a single deployment for all resources using the name hint as
    // the literal name
    final DeploymentBuilder deploymentBuilder = repositoryService.createDeployment().enableDuplicateFiltering().name(deploymentNameHint);

    for (final Resource resource : resources) {
        final String resourceName = determineResourceName(resource);

        try {
            if (resourceName.endsWith(".bar") || resourceName.endsWith(".zip") || resourceName.endsWith(".jar")) {
                deploymentBuilder.addZipInputStream(new ZipInputStream(resource.getInputStream()));
            } else {
                deploymentBuilder.addInputStream(resourceName, resource.getInputStream());
            }
        } catch (IOException e) {
            throw new ActivitiException("couldn't auto deploy resource '" + resource + "': " + e.getMessage(), e);
        }
    }

    deploymentBuilder.deploy();

}
 
源代码18 项目: flowable-engine   文件: DeploymentBuilderImpl.java
@Override
public DeploymentBuilder addZipInputStream(ZipInputStream zipInputStream) {
    try {
        ZipEntry entry = zipInputStream.getNextEntry();
        while (entry != null) {
            if (!entry.isDirectory()) {
                String entryName = entry.getName();
                byte[] bytes = IoUtil.readInputStream(zipInputStream, entryName);
                ResourceEntity resource = new ResourceEntity();
                resource.setName(entryName);
                resource.setBytes(bytes);
                deployment.addResource(resource);
            }
            entry = zipInputStream.getNextEntry();
        }
    } catch (Exception e) {
        throw new ActivitiException("problem reading zip input stream", e);
    }
    return this;
}
 
源代码19 项目: gem   文件: BxlcTaskListeningImpl.java
/**
 * @Description:发布流程
 * @param type 流程的key
 * @author: Ryan
 * @date 2018年11月18日
 */
public String deployment(String type) {
	DeploymentBuilder createDeployment = repositoryService.createDeployment();
	createDeployment.addClasspathResource("processes/"+type+".bpmn");
	createDeployment.addClasspathResource("processes/"+type+".png");
	Deployment deploy = createDeployment.deploy();
	return deploy.getId();
}
 
@Override
public void deployResources(final String deploymentNameHint, final Resource[] resources, final RepositoryService repositoryService) {

  // Create a deployment for each distinct parent folder using the name
  // hint
  // as a prefix
  final Map<String, Set<Resource>> resourcesMap = createMap(resources);

  for (final Entry<String, Set<Resource>> group : resourcesMap.entrySet()) {

    final String deploymentName = determineDeploymentName(deploymentNameHint, group.getKey());

    final DeploymentBuilder deploymentBuilder = repositoryService.createDeployment().enableDuplicateFiltering().name(deploymentName);

    for (final Resource resource : group.getValue()) {
      final String resourceName = determineResourceName(resource);

      try {
        if (resourceName.endsWith(".bar") || resourceName.endsWith(".zip") || resourceName.endsWith(".jar")) {
          deploymentBuilder.addZipInputStream(new ZipInputStream(resource.getInputStream()));
        } else {
          deploymentBuilder.addInputStream(resourceName, resource.getInputStream());
        }
      } catch (IOException e) {
        throw new ActivitiException("couldn't auto deploy resource '" + resource + "': " + e.getMessage(), e);
      }
    }
    deploymentBuilder.deploy();
  }

}
 
源代码21 项目: activiti6-boot2   文件: RepositoryServiceImpl.java
public DeploymentBuilder createDeployment() {
  return commandExecutor.execute(new Command<DeploymentBuilder>() {
    @Override
    public DeploymentBuilder execute(CommandContext commandContext) {
      return new DeploymentBuilderImpl(RepositoryServiceImpl.this);
    }
  });
}
 
源代码22 项目: activiti6-boot2   文件: DeploymentBuilderImpl.java
public DeploymentBuilder addInputStream(String resourceName, InputStream inputStream) {
  if (inputStream == null) {
    throw new ActivitiIllegalArgumentException("inputStream for resource '" + resourceName + "' is null");
  }
  byte[] bytes = IoUtil.readInputStream(inputStream, resourceName);
  ResourceEntity resource = resourceEntityManager.create();
  resource.setName(resourceName);
  resource.setBytes(bytes);
  deployment.addResource(resource);
  return this;
}
 
源代码23 项目: activiti6-boot2   文件: DeploymentBuilderImpl.java
public DeploymentBuilder addClasspathResource(String resource) {
  InputStream inputStream = ReflectUtil.getResourceAsStream(resource);
  if (inputStream == null) {
    throw new ActivitiIllegalArgumentException("resource '" + resource + "' not found");
  }
  return addInputStream(resource, inputStream);
}
 
源代码24 项目: activiti6-boot2   文件: DeploymentBuilderImpl.java
public DeploymentBuilder addString(String resourceName, String text) {
  if (text == null) {
    throw new ActivitiIllegalArgumentException("text is null");
  }
  ResourceEntity resource = resourceEntityManager.create();
  resource.setName(resourceName);
  try {
    resource.setBytes(text.getBytes(DEFAULT_ENCODING));
  } catch (UnsupportedEncodingException e) {
    throw new ActivitiException("Unable to get process bytes.", e);
  }
  deployment.addResource(resource);
  return this;
}
 
源代码25 项目: activiti6-boot2   文件: DeploymentBuilderImpl.java
public DeploymentBuilder addBytes(String resourceName, byte[] bytes) {
  if (bytes == null) {
    throw new ActivitiIllegalArgumentException("bytes is null");
  }
  ResourceEntity resource = resourceEntityManager.create();
  resource.setName(resourceName);
  resource.setBytes(bytes);
  
  deployment.addResource(resource);
  return this;
}
 
源代码26 项目: activiti6-boot2   文件: DeploymentBuilderImpl.java
public DeploymentBuilder addBpmnModel(String resourceName, BpmnModel bpmnModel) {
  BpmnXMLConverter bpmnXMLConverter = new BpmnXMLConverter();
  try {
    String bpmn20Xml = new String(bpmnXMLConverter.convertToXML(bpmnModel), "UTF-8");
    addString(resourceName, bpmn20Xml);
  } catch (UnsupportedEncodingException e) {
    throw new ActivitiException("Error while transforming BPMN model to xml: not UTF-8 encoded", e);
  }
  return this;
}
 
源代码27 项目: activiti6-boot2   文件: ProcessDeployer.java
/**
 * Deploys a single process
 * 
 * @return the processDefinitionId of the deployed process as returned by {@link ProcessDefinition#getId()}
 */
public String deployProcess(String resourceName) {
  logger.debug("Start deploying single process.");
  // deploy processes as one deployment
  DeploymentBuilder deploymentBuilder = processEngine.getRepositoryService().createDeployment();
  deploymentBuilder.addClasspathResource(resourceName);
  // deploy the processes
  Deployment deployment = deploymentBuilder.deploy();
  logger.debug("Process deployed");
  // retreive the processDefinitionId for this process
  return processEngine.getRepositoryService().createProcessDefinitionQuery().deploymentId(deployment.getId()).singleResult().getId();
}
 
@SuppressWarnings("unchecked")
@Override
public void handle(SimulationEvent event) {

  List<String> resources = (List<String>) event.getProperty(resourcesKey);

  DeploymentBuilder deploymentBuilder = SimulationRunContext.getRepositoryService().createDeployment();

  for (String resource : resources) {
    log.debug("adding resource [{}] to repository", resource, SimulationRunContext.getRepositoryService());
    deploymentBuilder.addClasspathResource(resource);
  }

  deploymentBuilder.deploy();
}
 
/**
 * 部署流程资源
 * 加载ZIP文件中的流程
 */
@PostMapping(value = "/deploy")
@ApiOperation("上传流程定义文件并部署流程")
@Authorize(action = "deploy")
public ResponseMessage<Deployment> deploy(@RequestPart(value = "file") MultipartFile file) throws IOException {
    // 获取上传的文件名
    String fileName = file.getOriginalFilename();

    // 得到输入流(字节流)对象
    InputStream fileInputStream = file.getInputStream();

    // 文件的扩展名
    String extension = FilenameUtils.getExtension(fileName);

    // zip或者bar类型的文件用ZipInputStream方式部署
    DeploymentBuilder deployment = repositoryService.createDeployment();
    if ("zip".equals(extension) || "bar".equals(extension)) {
        ZipInputStream zip = new ZipInputStream(fileInputStream);
        deployment.addZipInputStream(zip);
    } else {
        // 其他类型的文件直接部署
        deployment.addInputStream(fileName, fileInputStream);
    }
    Deployment result = deployment.deploy();

    return ResponseMessage.ok(result);
}
 
@Override
public void deployResources(final String deploymentNameHint, final Resource[] resources, final RepositoryService repositoryService) {

    // Create a deployment for each distinct parent folder using the name
    // hint
    // as a prefix
    final Map<String, Set<Resource>> resourcesMap = createMap(resources);

    for (final Entry<String, Set<Resource>> group : resourcesMap.entrySet()) {

        final String deploymentName = determineDeploymentName(deploymentNameHint, group.getKey());

        final DeploymentBuilder deploymentBuilder = repositoryService.createDeployment().enableDuplicateFiltering().name(deploymentName);

        for (final Resource resource : group.getValue()) {
            final String resourceName = determineResourceName(resource);

            try {
                if (resourceName.endsWith(".bar") || resourceName.endsWith(".zip") || resourceName.endsWith(".jar")) {
                    deploymentBuilder.addZipInputStream(new ZipInputStream(resource.getInputStream()));
                } else {
                    deploymentBuilder.addInputStream(resourceName, resource.getInputStream());
                }
            } catch (IOException e) {
                throw new ActivitiException("couldn't auto deploy resource '" + resource + "': " + e.getMessage(), e);
            }
        }
        deploymentBuilder.deploy();
    }

}