public static ProcessDefinitionDto fromProcessDefinition(ProcessDefinition definition) { ProcessDefinitionDto dto = new ProcessDefinitionDto(); dto.id = definition.getId(); dto.key = definition.getKey(); dto.category = definition.getCategory(); dto.description = definition.getDescription(); dto.name = definition.getName(); dto.version = definition.getVersion(); dto.resource = definition.getResourceName(); dto.deploymentId = definition.getDeploymentId(); dto.diagram = definition.getDiagramResourceName(); dto.suspended = definition.isSuspended(); dto.tenantId = definition.getTenantId(); dto.versionTag = definition.getVersionTag(); dto.historyTimeToLive = definition.getHistoryTimeToLive(); dto.isStartableInTasklist = definition.isStartableInTasklist(); return dto; }
public static HalProcessDefinition fromProcessDefinition(ProcessDefinition processDefinition, ProcessEngine processEngine) { HalProcessDefinition halProcDef = new HalProcessDefinition(); halProcDef.id = processDefinition.getId(); halProcDef.key = processDefinition.getKey(); halProcDef.category = processDefinition.getCategory(); halProcDef.description = processDefinition.getDescription(); halProcDef.name = processDefinition.getName(); halProcDef.version = processDefinition.getVersion(); halProcDef.resource = processDefinition.getResourceName(); halProcDef.deploymentId = processDefinition.getDeploymentId(); halProcDef.diagram = processDefinition.getDiagramResourceName(); halProcDef.suspended = processDefinition.isSuspended(); halProcDef.contextPath = ApplicationContextPathUtil.getApplicationPathForDeployment(processEngine, processDefinition.getDeploymentId()); halProcDef.linker.createLink(REL_SELF, processDefinition.getId()); halProcDef.linker.createLink(REL_DEPLOYMENT, processDefinition.getDeploymentId()); halProcDef.linker.createLink(REL_DEPLOYMENT_RESOURCE, processDefinition.getDeploymentId(), processDefinition.getResourceName()); return halProcDef; }
protected void logProcessDefinitionRegistrations(StringBuilder builder, List<ProcessDefinition> processDefinitions) { if(processDefinitions.isEmpty()) { builder.append("Deployment does not provide any process definitions."); } else { builder.append("Will execute process definitions "); builder.append("\n"); for (ProcessDefinition processDefinition : processDefinitions) { builder.append("\n"); builder.append(" "); builder.append(processDefinition.getKey()); builder.append("[version: "); builder.append(processDefinition.getVersion()); builder.append(", id: "); builder.append(processDefinition.getId()); builder.append("]"); } builder.append("\n"); } }
@Deployment(resources={ "org/camunda/bpm/engine/test/api/oneTaskProcess.bpmn20.xml"}) public void testFindProcessDefinitionById() { List<ProcessDefinition> definitions = repositoryService.createProcessDefinitionQuery().list(); assertEquals(1, definitions.size()); ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(definitions.get(0).getId()).singleResult(); runtimeService.startProcessInstanceByKey("oneTaskProcess"); assertNotNull(processDefinition); assertEquals("oneTaskProcess", processDefinition.getKey()); assertEquals("The One Task Process", processDefinition.getName()); processDefinition = repositoryService.getProcessDefinition(definitions.get(0).getId()); assertEquals("This is a process for testing purposes", processDefinition.getDescription()); }
@Override protected String toString(ProcessDefinition processDefinition) { return processDefinition != null ? String.format("%s {" + "id='%s', " + "name='%s', " + "description='%s', " + "deploymentId='%s'}", ProcessDefinition.class.getSimpleName(), processDefinition.getId(), processDefinition.getName(), processDefinition.getDescription(), processDefinition.getDeploymentId()) : null; }
public void testDeployIdenticalProcessDefinitions() { List<String> deploymentIds = new ArrayList<String>(); deploymentIds.add(deployProcessString(("<definitions " + NAMESPACE + " " + TARGET_NAMESPACE + ">" + " <process id='IDR' name='Insurance Damage Report' isExecutable='true' />" + "</definitions>"))); deploymentIds.add(deployProcessString(("<definitions " + NAMESPACE + " " + TARGET_NAMESPACE + ">" + " <process id='IDR' name='Insurance Damage Report' isExecutable='true' />" + "</definitions>"))); List<ProcessDefinition> processDefinitions = repositoryService .createProcessDefinitionQuery() .orderByProcessDefinitionKey().asc() .orderByProcessDefinitionVersion().desc() .list(); assertNotNull(processDefinitions); assertEquals(2, processDefinitions.size()); ProcessDefinition processDefinition = processDefinitions.get(0); assertEquals("IDR", processDefinition.getKey()); assertEquals("Insurance Damage Report", processDefinition.getName()); assertTrue(processDefinition.getId().startsWith("IDR:2")); assertEquals(2, processDefinition.getVersion()); processDefinition = processDefinitions.get(1); assertEquals("IDR", processDefinition.getKey()); assertEquals("Insurance Damage Report", processDefinition.getName()); assertTrue(processDefinition.getId().startsWith("IDR:1")); assertEquals(1, processDefinition.getVersion()); deleteDeployments(deploymentIds); }
public void testSuspendProcessDefinitionById() { // given String processDefinitionId = selectProcessDefinitionByKey(ONE_TASK_PROCESS_KEY).getId(); createGrantAuthorization(PROCESS_DEFINITION, ONE_TASK_PROCESS_KEY, userId, UPDATE); // when repositoryService.suspendProcessDefinitionById(processDefinitionId); // then ProcessDefinition definition = selectProcessDefinitionByKey(ONE_TASK_PROCESS_KEY); assertTrue(definition.isSuspended()); }
private String[] findProcessDefinitionIdsByKey(String processDefinitionKey) { List<ProcessDefinition> processDefinitions = repositoryService.createProcessDefinitionQuery() .processDefinitionKey(processDefinitionKey).list(); List<String> processDefinitionIds = new ArrayList<String>(); for (ProcessDefinition processDefinition: processDefinitions) { processDefinitionIds.add(processDefinition.getId()); } return processDefinitionIds.toArray(new String[0]); }
protected void createJobDefinition(ProcessDefinition processDefinition, JobDeclaration<?, ?> jobDeclaration) { final JobDefinitionManager jobDefinitionManager = getJobDefinitionManager(); JobDefinitionEntity jobDefinitionEntity = new JobDefinitionEntity(jobDeclaration); jobDefinitionEntity.setProcessDefinitionId(processDefinition.getId()); jobDefinitionEntity.setProcessDefinitionKey(processDefinition.getKey()); jobDefinitionEntity.setTenantId(processDefinition.getTenantId()); jobDefinitionManager.insert(jobDefinitionEntity); jobDeclaration.setJobDefinitionId(jobDefinitionEntity.getId()); }
@Override public void migrateState() { ScopeImpl targetActivity = migratingActivityInstance.getTargetScope(); ProcessDefinition targetProcessDefinition = (ProcessDefinition) targetActivity.getProcessDefinition(); externalTask.setActivityId(targetActivity.getId()); externalTask.setProcessDefinitionId(targetProcessDefinition.getId()); externalTask.setProcessDefinitionKey(targetProcessDefinition.getKey()); }
@Override public void checkCreateProcessInstance(ProcessDefinition processDefinition) { if (!getTenantManager().isAuthenticatedTenant(processDefinition.getTenantId())) { throw LOG.exceptionCommandWithUnauthorizedTenant("create an instance of the process definition '"+ processDefinition.getId() + "'"); } }
@Deployment public void testGetBpmnXmlFileThroughService() { String deploymentId = repositoryService.createDeploymentQuery().singleResult().getId(); List<String> deploymentResources = repositoryService.getDeploymentResourceNames(deploymentId); // verify bpmn file name assertEquals(1, deploymentResources.size()); String bpmnResourceName = "org/camunda/bpm/engine/test/bpmn/deployment/BpmnDeploymentTest.testGetBpmnXmlFileThroughService.bpmn20.xml"; assertEquals(bpmnResourceName, deploymentResources.get(0)); ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().singleResult(); assertEquals(bpmnResourceName, processDefinition.getResourceName()); assertNull(processDefinition.getDiagramResourceName()); assertFalse(processDefinition.hasStartFormKey()); ReadOnlyProcessDefinition readOnlyProcessDefinition = ((RepositoryServiceImpl)repositoryService).getDeployedProcessDefinition(processDefinition.getId()); assertNull(readOnlyProcessDefinition.getDiagramResourceName()); // verify content InputStream deploymentInputStream = repositoryService.getResourceAsStream(deploymentId, bpmnResourceName); String contentFromDeployment = readInputStreamToString(deploymentInputStream); assertTrue(contentFromDeployment.length() > 0); assertTrue(contentFromDeployment.contains("process id=\"emptyProcess\"")); InputStream fileInputStream = ReflectUtil.getResourceAsStream("org/camunda/bpm/engine/test/bpmn/deployment/BpmnDeploymentTest.testGetBpmnXmlFileThroughService.bpmn20.xml"); String contentFromFile = readInputStreamToString(fileInputStream); assertEquals(contentFromFile, contentFromDeployment); }
@Deployment(resources = { "org/camunda/bpm/engine/test/api/oneTaskProcess.bpmn20.xml" }) public void testDeleteDeploymentCascadeWithRunningInstances() { List<ProcessDefinition> processDefinitions = repositoryService.createProcessDefinitionQuery().list(); assertEquals(1, processDefinitions.size()); ProcessDefinition processDefinition = processDefinitions.get(0); runtimeService.startProcessInstanceById(processDefinition.getId()); // Try to delete the deployment, no exception should be thrown repositoryService.deleteDeployment(processDefinition.getDeploymentId(), true); }
protected Set<String> findDeploymentIdsForProcessDefinitions(CommandContext commandContext, Set<String> processDefinitionKeys) { Set<String> deploymentsToRegister = new HashSet<String>(); if (!processDefinitionKeys.isEmpty()) { String[] keys = processDefinitionKeys.toArray(new String[processDefinitionKeys.size()]); ProcessDefinitionManager processDefinitionManager = commandContext.getProcessDefinitionManager(); List<ProcessDefinition> previousDefinitions = processDefinitionManager.findProcessDefinitionsByKeyIn(keys); for (ProcessDefinition definition : previousDefinitions) { deploymentsToRegister.add(definition.getDeploymentId()); } } return deploymentsToRegister; }
protected void startProcessInstance(CommandContext commandContext, String tenantId, ProcessDefinition processDefinition) { if(!processDefinition.isSuspended()) { RuntimeService runtimeService = commandContext.getProcessEngineConfiguration().getRuntimeService(); runtimeService.createProcessInstanceByKey(processDefinition.getKey()).processDefinitionTenantId(tenantId).execute(); } else { LOG.ignoringSuspendedJob(processDefinition); } } }
protected void addJobDeclarationToProcessDefinition(JobDeclaration<?, ?> jobDeclaration, ProcessDefinition processDefinition) { String key = processDefinition.getKey(); List<JobDeclaration<?, ?>> containingJobDeclarations = jobDeclarations.get(key); if (containingJobDeclarations == null) { containingJobDeclarations = new ArrayList<JobDeclaration<?, ?>>(); jobDeclarations.put(key, containingJobDeclarations); } containingJobDeclarations.add(jobDeclaration); }
assertEquals("Second Test Process", result.getName()); assertEquals(2, result.getVersion()); assertEquals("Second Test Process", result.getName()); assertEquals(2, result.getVersion()); assertEquals("Second Test Process", result.getName()); assertEquals(2, result.getVersion());
@Deployment(resources={ "org/camunda/bpm/engine/test/bpmn/deployment/BpmnDeploymentTest.testProcessDiagramResource.bpmn20.xml", "org/camunda/bpm/engine/test/bpmn/deployment/BpmnDeploymentTest.testProcessDiagramResource.jpg" }) public void testProcessDiagramResource() { ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().singleResult(); assertEquals("org/camunda/bpm/engine/test/bpmn/deployment/BpmnDeploymentTest.testProcessDiagramResource.bpmn20.xml", processDefinition.getResourceName()); assertTrue(processDefinition.hasStartFormKey()); String diagramResourceName = processDefinition.getDiagramResourceName(); assertEquals("org/camunda/bpm/engine/test/bpmn/deployment/BpmnDeploymentTest.testProcessDiagramResource.jpg", diagramResourceName); InputStream diagramStream = repositoryService.getResourceAsStream(deploymentId, "org/camunda/bpm/engine/test/bpmn/deployment/BpmnDeploymentTest.testProcessDiagramResource.jpg"); byte[] diagramBytes = IoUtil.readInputStream(diagramStream, "diagram stream"); assertEquals(33343, diagramBytes.length); }
public void testQueryByLatestWithoutTenantId() { // deploy a second version without tenant id deployment(emptyProcess); ProcessDefinitionQuery query = repositoryService .createProcessDefinitionQuery() .processDefinitionKey(PROCESS_DEFINITION_KEY) .latestVersion() .withoutTenantId(); assertThat(query.count(), is(1L)); ProcessDefinition processDefinition = query.singleResult(); assertThat(processDefinition.getTenantId(), is(nullValue())); assertThat(processDefinition.getVersion(), is(2)); }
protected Map<String, ProcessDefinition> getProcessDefinitionsForTenant(List<ProcessDefinition> processDefinitions) { Map<String, ProcessDefinition> definitionsForTenant = new HashMap<String, ProcessDefinition>(); for (ProcessDefinition definition : processDefinitions) { definitionsForTenant.put(definition.getTenantId(), definition); } return definitionsForTenant; }