public void run() { try { FileInputStream fis = new FileInputStream(new File(filename)); processEngine.getRepositoryService() .createDeployment() .addInputStream(filename, fis) .deploy(); } catch (FileNotFoundException e) { e.printStackTrace(); } }
deploymentBuilder.addZipInputStream(new ZipInputStream(resource.getInputStream())); } else { deploymentBuilder.addInputStream(resourceName, resource.getInputStream());
@Before public void setUpRuntimeData() { mockRepositoryService = mock(RepositoryService.class); when(processEngine.getRepositoryService()).thenReturn(mockRepositoryService); mockDeployment = MockProvider.createMockDeployment(); mockDeploymentWithDefinitions = MockProvider.createMockDeploymentWithDefinitions(); mockDeploymentQuery = mock(DeploymentQuery.class); when(mockDeploymentQuery.deploymentId(EXAMPLE_DEPLOYMENT_ID)).thenReturn(mockDeploymentQuery); when(mockDeploymentQuery.singleResult()).thenReturn(mockDeployment); when(mockRepositoryService.createDeploymentQuery()).thenReturn(mockDeploymentQuery); mockDeploymentResources = MockProvider.createMockDeploymentResources(); when(mockRepositoryService.getDeploymentResources(eq(EXAMPLE_DEPLOYMENT_ID))).thenReturn(mockDeploymentResources); mockDeploymentResource = MockProvider.createMockDeploymentResource(); when(mockRepositoryService.getResourceAsStreamById(eq(EXAMPLE_DEPLOYMENT_ID), eq(EXAMPLE_DEPLOYMENT_RESOURCE_ID))).thenReturn(createMockDeploymentResourceBpmnData()); mockDeploymentBuilder = mock(DeploymentBuilder.class); when(mockRepositoryService.createDeployment()).thenReturn(mockDeploymentBuilder); when(mockDeploymentBuilder.addInputStream(anyString(), any(InputStream.class))).thenReturn(mockDeploymentBuilder); when(mockDeploymentBuilder.addDeploymentResourcesById(anyString(), anyListOf(String.class))).thenReturn(mockDeploymentBuilder); when(mockDeploymentBuilder.addDeploymentResourcesByName(anyString(), anyListOf(String.class))).thenReturn(mockDeploymentBuilder); when(mockDeploymentBuilder.source(anyString())).thenReturn(mockDeploymentBuilder); when(mockDeploymentBuilder.tenantId(anyString())).thenReturn(mockDeploymentBuilder); when(mockDeploymentBuilder.getResourceNames()).thenReturn(resourceNames); when(mockDeploymentBuilder.deployWithResult()).thenReturn(mockDeploymentWithDefinitions); }
@Test public void testCreateBothJobDefinitionWithParseListenerAndAsyncBeforeInXml() { //given the asyncBefore is set in the xml String modelFileName = "jobAsyncBeforeCreationWithinParseListener.bpmn20.xml"; InputStream in = JobDefinitionCreationWithParseListenerTest.class.getResourceAsStream(modelFileName); DeploymentBuilder builder = engineRule.getRepositoryService().createDeployment().addInputStream(modelFileName, in); //when the asyncBefore and asyncAfter is set to true in the parse listener Deployment deployment = builder.deploy(); engineRule.manageDeployment(deployment); //then there exists two job definitions JobDefinitionQuery query = engineRule.getManagementService().createJobDefinitionQuery(); List<JobDefinition> definitions = query.orderByJobConfiguration().asc().list(); assertEquals(definitions.size(), 2); //asyncAfter JobDefinition asyncAfterAfter = definitions.get(0); assertEquals(asyncAfterAfter.getProcessDefinitionKey(), "oneTaskProcess"); assertEquals(asyncAfterAfter.getActivityId(), "servicetask1"); assertEquals(asyncAfterAfter.getJobConfiguration(), MessageJobDeclaration.ASYNC_AFTER); //asyncBefore JobDefinition asyncAfterBefore = definitions.get(1); assertEquals(asyncAfterBefore.getProcessDefinitionKey(), "oneTaskProcess"); assertEquals(asyncAfterBefore.getActivityId(), "servicetask1"); assertEquals(asyncAfterBefore.getJobConfiguration(), MessageJobDeclaration.ASYNC_BEFORE); }
@Test public void testCreateBothAsyncJobDefinitionWithParseListener() { //given String modelFileName = "jobCreationWithinParseListener.bpmn20.xml"; InputStream in = JobDefinitionCreationWithParseListenerTest.class.getResourceAsStream(modelFileName); DeploymentBuilder builder = engineRule.getRepositoryService().createDeployment().addInputStream(modelFileName, in); //when the asyncBefore and asyncAfter is set to true in the parse listener Deployment deployment = builder.deploy(); engineRule.manageDeployment(deployment); //then there exists two job definitions JobDefinitionQuery query = engineRule.getManagementService().createJobDefinitionQuery(); List<JobDefinition> definitions = query.orderByJobConfiguration().asc().list(); assertEquals(definitions.size(), 2); //asyncAfter JobDefinition asyncAfterAfter = definitions.get(0); assertEquals(asyncAfterAfter.getProcessDefinitionKey(), "oneTaskProcess"); assertEquals(asyncAfterAfter.getActivityId(), "servicetask1"); assertEquals(asyncAfterAfter.getJobConfiguration(), MessageJobDeclaration.ASYNC_AFTER); //asyncBefore JobDefinition asyncAfterBefore = definitions.get(1); assertEquals(asyncAfterBefore.getProcessDefinitionKey(), "oneTaskProcess"); assertEquals(asyncAfterBefore.getActivityId(), "servicetask1"); assertEquals(asyncAfterBefore.getJobConfiguration(), MessageJobDeclaration.ASYNC_BEFORE); }
@Test public void testCreateBothJobDefinitionWithParseListenerAndAsynBothInXml() { //given the asyncBefore AND asyncAfter is set in the xml String modelFileName = "jobAsyncBothCreationWithinParseListener.bpmn20.xml"; InputStream in = JobDefinitionCreationWithParseListenerTest.class.getResourceAsStream(modelFileName); DeploymentBuilder builder = engineRule.getRepositoryService().createDeployment().addInputStream(modelFileName, in); //when the asyncBefore and asyncAfter is set to true in the parse listener Deployment deployment = builder.deploy(); engineRule.manageDeployment(deployment); //then there exists two job definitions JobDefinitionQuery query = engineRule.getManagementService().createJobDefinitionQuery(); List<JobDefinition> definitions = query.orderByJobConfiguration().asc().list(); assertEquals(definitions.size(), 2); //asyncAfter JobDefinition asyncAfterAfter = definitions.get(0); assertEquals(asyncAfterAfter.getProcessDefinitionKey(), "oneTaskProcess"); assertEquals(asyncAfterAfter.getActivityId(), "servicetask1"); assertEquals(asyncAfterAfter.getJobConfiguration(), MessageJobDeclaration.ASYNC_AFTER); //asyncBefore JobDefinition asyncAfterBefore = definitions.get(1); assertEquals(asyncAfterBefore.getProcessDefinitionKey(), "oneTaskProcess"); assertEquals(asyncAfterBefore.getActivityId(), "servicetask1"); assertEquals(asyncAfterBefore.getJobConfiguration(), MessageJobDeclaration.ASYNC_BEFORE); } }
private DeploymentBuilder extractDeploymentInformation(MultipartFormData payload) { DeploymentBuilder deploymentBuilder = getProcessEngine().getRepositoryService().createDeployment(); Set<String> partNames = payload.getPartNames(); for (String name : partNames) { FormPart part = payload.getNamedPart(name); if (!RESERVED_KEYWORDS.contains(name)) { deploymentBuilder.addInputStream(part.getFileName(), new ByteArrayInputStream(part.getBinaryContent())); } } FormPart deploymentName = payload.getNamedPart(DEPLOYMENT_NAME); if (deploymentName != null) { deploymentBuilder.name(deploymentName.getTextContent()); } FormPart deploymentSource = payload.getNamedPart(DEPLOYMENT_SOURCE); if (deploymentSource != null) { deploymentBuilder.source(deploymentSource.getTextContent()); } FormPart deploymentTenantId = payload.getNamedPart(TENANT_ID); if (deploymentTenantId != null) { deploymentBuilder.tenantId(deploymentTenantId.getTextContent()); } extractDuplicateFilteringForDeployment(payload, deploymentBuilder); return deploymentBuilder; }
private DeploymentBuilder extractDeploymentInformation(MultipartFormData payload) { DeploymentBuilder deploymentBuilder = getProcessEngine().getRepositoryService().createDeployment(); Set<String> partNames = payload.getPartNames(); for (String name : partNames) { FormPart part = payload.getNamedPart(name); if (!RESERVED_KEYWORDS.contains(name)) { deploymentBuilder.addInputStream(part.getFileName(), new ByteArrayInputStream(part.getBinaryContent())); } } FormPart deploymentName = payload.getNamedPart(DEPLOYMENT_NAME); if (deploymentName != null) { deploymentBuilder.name(deploymentName.getTextContent()); } FormPart deploymentSource = payload.getNamedPart(DEPLOYMENT_SOURCE); if (deploymentSource != null) { deploymentBuilder.source(deploymentSource.getTextContent()); } FormPart deploymentTenantId = payload.getNamedPart(TENANT_ID); if (deploymentTenantId != null) { deploymentBuilder.tenantId(deploymentTenantId.getTextContent()); } extractDuplicateFilteringForDeployment(payload, deploymentBuilder); return deploymentBuilder; }
@Test public void testCreateJobDefinitionWithParseListener() { //given String modelFileName = "jobCreationWithinParseListener.bpmn20.xml"; InputStream in = JobDefinitionCreationWithParseListenerTest.class.getResourceAsStream(modelFileName); DeploymentBuilder builder = engineRule.getRepositoryService().createDeployment().addInputStream(modelFileName, in); //when the asyncBefore is set in the parse listener Deployment deployment = builder.deploy(); engineRule.manageDeployment(deployment); //then there exists a new job definition JobDefinitionQuery query = engineRule.getManagementService().createJobDefinitionQuery(); JobDefinition jobDef = query.singleResult(); assertNotNull(jobDef); assertEquals(jobDef.getProcessDefinitionKey(), "oneTaskProcess"); assertEquals(jobDef.getActivityId(), "servicetask1"); }
public void testTimerShouldNotBeRemovedWhenUndeployingOldVersion() throws Exception { // Deploy test process InputStream in = getClass().getResourceAsStream("StartTimerEventTest.testTimerShouldNotBeRemovedWhenUndeployingOldVersion.bpmn20.xml"); String process = new String(IoUtil.readInputStream(in, "")); IoUtil.closeSilently(in); in = new ByteArrayInputStream(process.getBytes()); String firstDeploymentId = repositoryService.createDeployment().addInputStream("StartTimerEventTest.testVersionUpgradeShouldCancelJobs.bpmn20.xml", in) .deploy().getId(); IoUtil.closeSilently(in); // After process start, there should be timer created JobQuery jobQuery = managementService.createJobQuery(); assertEquals(1, jobQuery.count()); // we deploy new process version, with some small change String processChanged = process.replaceAll("beforeChange", "changed"); in = new ByteArrayInputStream(processChanged.getBytes()); String secondDeploymentId = repositoryService.createDeployment().addInputStream("StartTimerEventTest.testVersionUpgradeShouldCancelJobs.bpmn20.xml", in) .deploy().getId(); IoUtil.closeSilently(in); assertEquals(1, jobQuery.count()); // Remove the first deployment repositoryService.deleteDeployment(firstDeploymentId, true); // The removal of an old version should not affect timer deletion // ACT-1533: this was a bug, and the timer was deleted! assertEquals(1, jobQuery.count()); // Cleanup cleanDB(); repositoryService.deleteDeployment(secondDeploymentId, true); }
@Test public void testCreateJobDefinitionWithParseListenerAndAsyncInXml() { //given the asyncBefore is set in the xml String modelFileName = "jobAsyncBeforeCreationWithinParseListener.bpmn20.xml"; InputStream in = JobDefinitionCreationWithParseListenerTest.class.getResourceAsStream(modelFileName); DeploymentBuilder builder = engineRule.getRepositoryService().createDeployment().addInputStream(modelFileName, in); //when the asyncBefore is set in the parse listener Deployment deployment = builder.deploy(); engineRule.manageDeployment(deployment); //then there exists only one job definition JobDefinitionQuery query = engineRule.getManagementService().createJobDefinitionQuery(); JobDefinition jobDef = query.singleResult(); assertNotNull(jobDef); assertEquals(jobDef.getProcessDefinitionKey(), "oneTaskProcess"); assertEquals(jobDef.getActivityId(), "servicetask1"); } }
@Test public void testDeleteNonExistingJobDefinitionWithParseListener() { //given String modelFileName = "jobCreationWithinParseListener.bpmn20.xml"; InputStream in = JobDefinitionCreationWithParseListenerTest.class.getResourceAsStream(modelFileName); DeploymentBuilder builder = engineRule.getRepositoryService().createDeployment().addInputStream(modelFileName, in); //when the asyncBefore is set to false in the parse listener Deployment deployment = builder.deploy(); engineRule.manageDeployment(deployment); //then there exists no job definition JobDefinitionQuery query = engineRule.getManagementService().createJobDefinitionQuery(); assertNull(query.singleResult()); }
@Test public void testDeleteJobDefinitionWithParseListenerAndAsyncInXml() { //given the asyncBefore is set in the xml String modelFileName = "jobAsyncBeforeCreationWithinParseListener.bpmn20.xml"; InputStream in = JobDefinitionCreationWithParseListenerTest.class.getResourceAsStream(modelFileName); DeploymentBuilder builder = engineRule.getRepositoryService().createDeployment().addInputStream(modelFileName, in); //when the asyncBefore is set to false in the parse listener Deployment deployment = builder.deploy(); engineRule.manageDeployment(deployment); //then there exists no job definition JobDefinitionQuery query = engineRule.getManagementService().createJobDefinitionQuery(); assertNull(query.singleResult()); } }
@Deployment public void testVersionUpgradeShouldCancelJobs() throws Exception { ClockUtil.setCurrentTime(new Date()); // After process start, there should be timer created JobQuery jobQuery = managementService.createJobQuery(); assertEquals(1, jobQuery.count()); // we deploy new process version, with some small change InputStream in = getClass().getResourceAsStream("StartTimerEventTest.testVersionUpgradeShouldCancelJobs.bpmn20.xml"); String process = new String(IoUtil.readInputStream(in, "")).replaceAll("beforeChange", "changed"); IoUtil.closeSilently(in); in = new ByteArrayInputStream(process.getBytes()); String id = repositoryService.createDeployment().addInputStream("StartTimerEventTest.testVersionUpgradeShouldCancelJobs.bpmn20.xml", in).deploy().getId(); IoUtil.closeSilently(in); assertEquals(1, jobQuery.count()); moveByMinutes(5); executeAllJobs(); ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processDefinitionKey("startTimerEventExample").singleResult(); String pi = processInstance.getProcessInstanceId(); assertEquals("changed", runtimeService.getActiveActivityIds(pi).get(0)); assertEquals(1, jobQuery.count()); // cleanDB(); repositoryService.deleteDeployment(id, true); }
@Test public void testDeleteNonExistingAndCreateNewJobDefinitionWithParseListener() { //given String modelFileName = "jobCreationWithinParseListener.bpmn20.xml"; InputStream in = JobDefinitionCreationWithParseListenerTest.class.getResourceAsStream(modelFileName); DeploymentBuilder builder = engineRule.getRepositoryService().createDeployment().addInputStream(modelFileName, in); //when the asyncBefore is set to false and the asyncAfter to true in the parse listener Deployment deployment = builder.deploy(); engineRule.manageDeployment(deployment); //then there exists one job definition JobDefinitionQuery query = engineRule.getManagementService().createJobDefinitionQuery(); JobDefinition jobDef = query.singleResult(); assertNotNull(jobDef); assertEquals(jobDef.getProcessDefinitionKey(), "oneTaskProcess"); assertEquals(jobDef.getActivityId(), "servicetask1"); assertEquals(jobDef.getJobConfiguration(), MessageJobDeclaration.ASYNC_AFTER); }
@Test public void testDeleteJobDefinitionWithParseListenerAndAsyncInXml() { //given the asyncBefore is set in the xml String modelFileName = "jobAsyncBeforeCreationWithinParseListener.bpmn20.xml"; InputStream in = JobDefinitionCreationWithParseListenerTest.class.getResourceAsStream(modelFileName); DeploymentBuilder builder = engineRule.getRepositoryService().createDeployment().addInputStream(modelFileName, in); //when the asyncBefore is set to false and the asyncAfter to true in the parse listener Deployment deployment = builder.deploy(); engineRule.manageDeployment(deployment); //then there exists one job definition JobDefinitionQuery query = engineRule.getManagementService().createJobDefinitionQuery(); JobDefinition jobDef = query.singleResult(); assertNotNull(jobDef); assertEquals(jobDef.getProcessDefinitionKey(), "oneTaskProcess"); assertEquals(jobDef.getActivityId(), "servicetask1"); assertEquals(jobDef.getJobConfiguration(), MessageJobDeclaration.ASYNC_AFTER); }
@Test public void testDeleteJobDefinitionWithParseListenerAndAsyncBothInXml() { //given the asyncBefore AND asyncAfter is set in the xml String modelFileName = "jobAsyncBothCreationWithinParseListener.bpmn20.xml"; InputStream in = JobDefinitionCreationWithParseListenerTest.class.getResourceAsStream(modelFileName); DeploymentBuilder builder = engineRule.getRepositoryService().createDeployment().addInputStream(modelFileName, in); //when the asyncBefore is set to false and the asyncAfter to true in the parse listener Deployment deployment = builder.deploy(); engineRule.manageDeployment(deployment); //then there exists one job definition JobDefinitionQuery query = engineRule.getManagementService().createJobDefinitionQuery(); JobDefinition jobDef = query.singleResult(); assertNotNull(jobDef); assertEquals(jobDef.getProcessDefinitionKey(), "oneTaskProcess"); assertEquals(jobDef.getActivityId(), "servicetask1"); assertEquals(jobDef.getJobConfiguration(), MessageJobDeclaration.ASYNC_AFTER); } }
@Test public void testCreateJobDefinitionWithParseListener() { //given String modelFileName = "jobCreationWithinParseListener.bpmn20.xml"; InputStream in = JobDefinitionCreationWithParseListenerTest.class.getResourceAsStream(modelFileName); DeploymentBuilder builder = engineRule.getRepositoryService().createDeployment().addInputStream(modelFileName, in); //when the asyncBefore is set in the parse listener Deployment deployment = builder.deploy(); engineRule.manageDeployment(deployment); //then there exists a new job definition JobDefinitionQuery query = engineRule.getManagementService().createJobDefinitionQuery(); JobDefinition jobDef = query.singleResult(); assertNotNull(jobDef); assertEquals(jobDef.getProcessDefinitionKey(), "oneTaskProcess"); assertEquals(jobDef.getActivityId(), "servicetask1"); }
@Test public void testDeleteNonExistingJobDefinitionWithParseListener() { //given String modelFileName = "jobCreationWithinParseListener.bpmn20.xml"; InputStream in = JobDefinitionCreationWithParseListenerTest.class.getResourceAsStream(modelFileName); DeploymentBuilder builder = engineRule.getRepositoryService().createDeployment().addInputStream(modelFileName, in); //when the asyncBefore is set to false in the parse listener Deployment deployment = builder.deploy(); engineRule.manageDeployment(deployment); //then there exists no job definition JobDefinitionQuery query = engineRule.getManagementService().createJobDefinitionQuery(); assertNull(query.singleResult()); }
@Test public void testDeleteJobDefinitionWithParseListenerAndAsyncInXml() { //given the asyncBefore is set in the xml String modelFileName = "jobAsyncBeforeCreationWithinParseListener.bpmn20.xml"; InputStream in = JobDefinitionCreationWithParseListenerTest.class.getResourceAsStream(modelFileName); DeploymentBuilder builder = engineRule.getRepositoryService().createDeployment().addInputStream(modelFileName, in); //when the asyncBefore is set to false in the parse listener Deployment deployment = builder.deploy(); engineRule.manageDeployment(deployment); //then there exists no job definition JobDefinitionQuery query = engineRule.getManagementService().createJobDefinitionQuery(); assertNull(query.singleResult()); } }