@Override public Response getDecisionDefinitionDiagram() { DecisionDefinition definition = engine.getRepositoryService().getDecisionDefinition(decisionDefinitionId); InputStream decisionDiagram = engine.getRepositoryService().getDecisionDiagram(decisionDefinitionId); if (decisionDiagram == null) { return Response.noContent().build(); } else { String fileName = definition.getDiagramResourceName(); return Response.ok(decisionDiagram).header("Content-Disposition", "attachment; filename=" + fileName) .type(ProcessDefinitionResourceImpl.getMediaTypeForFileSuffix(fileName)).build(); } }
@Override public Response getDecisionDefinitionDiagram() { DecisionDefinition definition = engine.getRepositoryService().getDecisionDefinition(decisionDefinitionId); InputStream decisionDiagram = engine.getRepositoryService().getDecisionDiagram(decisionDefinitionId); if (decisionDiagram == null) { return Response.noContent().build(); } else { String fileName = definition.getDiagramResourceName(); return Response.ok(decisionDiagram).header("Content-Disposition", "attachment; filename=" + fileName) .type(ProcessDefinitionResourceImpl.getMediaTypeForFileSuffix(fileName)).build(); } }
public InputStream execute(final CommandContext commandContext) { DecisionDefinition decisionDefinition = new GetDeploymentDecisionDefinitionCmd(decisionDefinitionId).execute(commandContext); final String deploymentId = decisionDefinition.getDeploymentId(); final String resourceName = decisionDefinition.getDiagramResourceName(); if (resourceName != null ) { return commandContext.runWithoutAuthorization(new Callable<InputStream>() { public InputStream call() throws Exception { return new GetDeploymentResourceCmd(deploymentId, resourceName).execute(commandContext); } }); } else { return null; } }
public InputStream execute(final CommandContext commandContext) { DecisionDefinition decisionDefinition = new GetDeploymentDecisionDefinitionCmd(decisionDefinitionId).execute(commandContext); final String deploymentId = decisionDefinition.getDeploymentId(); final String resourceName = decisionDefinition.getDiagramResourceName(); if (resourceName != null ) { return commandContext.runWithoutAuthorization(new Callable<InputStream>() { public InputStream call() throws Exception { return new GetDeploymentResourceCmd(deploymentId, resourceName).execute(commandContext); } }); } else { return null; } }
public DecisionDefinition build() { DecisionDefinition mockDefinition = mock(DecisionDefinition.class); when(mockDefinition.getId()).thenReturn(id); when(mockDefinition.getCategory()).thenReturn(category); when(mockDefinition.getName()).thenReturn(name); when(mockDefinition.getKey()).thenReturn(key); when(mockDefinition.getVersion()).thenReturn(version); when(mockDefinition.getResourceName()).thenReturn(resource); when(mockDefinition.getDiagramResourceName()).thenReturn(diagramResource); when(mockDefinition.getDeploymentId()).thenReturn(deploymentId); when(mockDefinition.getTenantId()).thenReturn(tenantId); when(mockDefinition.getDecisionRequirementsDefinitionId()).thenReturn(decisionRequirementsDefinitionId); when(mockDefinition.getDecisionRequirementsDefinitionKey()).thenReturn(decisionRequirementsDefinitionKey); when(mockDefinition.getVersionTag()).thenReturn(versionTag); return mockDefinition; }
@Test public void testDecisionDiagramNullFilename() throws FileNotFoundException, URISyntaxException { // setup additional mock behavior File file = getFile("/processes/todo-process.png"); when(repositoryServiceMock.getDecisionDefinition(MockProvider.EXAMPLE_DECISION_DEFINITION_ID).getDiagramResourceName()) .thenReturn(null); when(repositoryServiceMock.getDecisionDiagram(MockProvider.EXAMPLE_DECISION_DEFINITION_ID)) .thenReturn(new FileInputStream(file)); // call method byte[] actual = given().pathParam("id", MockProvider.EXAMPLE_DECISION_DEFINITION_ID) .expect() .statusCode(Status.OK.getStatusCode()) .contentType("application/octet-stream") .header("Content-Disposition", "attachment; filename=" + null) .when().get(DIAGRAM_DEFINITION_URL).getBody().asByteArray(); // verify service interaction verify(repositoryServiceMock).getDecisionDiagram(MockProvider.EXAMPLE_DECISION_DEFINITION_ID); // compare input stream with response body bytes byte[] expected = IoUtil.readInputStream(new FileInputStream(file), "decision diagram"); Assert.assertArrayEquals(expected, actual); }
@Deployment(resources = { "org/camunda/bpm/engine/test/dmn/deployment/DecisionDefinitionDeployerTest.testMultipleDecisionDiagramResource.dmn11.xml", "org/camunda/bpm/engine/test/dmn/deployment/DecisionDefinitionDeployerTest.testMultipleDecisionDiagramResource.decision1.png", "org/camunda/bpm/engine/test/dmn/deployment/DecisionDefinitionDeployerTest.testMultipleDecisionDiagramResource.decision2.png", "org/camunda/bpm/engine/test/dmn/deployment/DecisionDefinitionDeployerTest.testMultipleDecisionDiagramResource.decision3.png" }) @Test public void multipleDiagramResourcesProvided() { String resourcePrefix = "org/camunda/bpm/engine/test/dmn/deployment/DecisionDefinitionDeployerTest.testMultipleDecisionDiagramResource."; DecisionDefinitionQuery decisionDefinitionQuery = repositoryService.createDecisionDefinitionQuery(); assertEquals(3, decisionDefinitionQuery.count()); for (DecisionDefinition decisionDefinition : decisionDefinitionQuery.list()) { assertEquals(resourcePrefix + decisionDefinition.getKey() + ".png", decisionDefinition.getDiagramResourceName()); } }
@Override public Response getDecisionDefinitionDiagram() { DecisionDefinition definition = engine.getRepositoryService().getDecisionDefinition(decisionDefinitionId); InputStream decisionDiagram = engine.getRepositoryService().getDecisionDiagram(decisionDefinitionId); if (decisionDiagram == null) { return Response.noContent().build(); } else { String fileName = definition.getDiagramResourceName(); return Response.ok(decisionDiagram).header("Content-Disposition", "attachment; filename=" + fileName) .type(ProcessDefinitionResourceImpl.getMediaTypeForFileSuffix(fileName)).build(); } }
@Deployment(resources = { "org/camunda/bpm/engine/test/dmn/deployment/DecisionDefinitionDeployerTest.testDecisionDiagramResource.dmn11.xml", "org/camunda/bpm/engine/test/dmn/deployment/DecisionDefinitionDeployerTest.testDecisionDiagramResource.png" }) @Test public void getDecisionDiagramResource() { String resourcePrefix = "org/camunda/bpm/engine/test/dmn/deployment/DecisionDefinitionDeployerTest.testDecisionDiagramResource"; DecisionDefinition decisionDefinition = repositoryService.createDecisionDefinitionQuery().singleResult(); assertEquals(resourcePrefix + ".dmn11.xml", decisionDefinition.getResourceName()); assertEquals("decision", decisionDefinition.getKey()); String diagramResourceName = decisionDefinition.getDiagramResourceName(); assertEquals(resourcePrefix + ".png", diagramResourceName); InputStream diagramStream = repositoryService.getResourceAsStream(decisionDefinition.getDeploymentId(), diagramResourceName); final byte[] diagramBytes = IoUtil.readInputStream(diagramStream, "diagram stream"); assertEquals(2540, diagramBytes.length); }
@Test public void dmnDeploymentWithDmnSuffix() { String deploymentId = testRule.deploy(DMN_CHECK_ORDER_RESOURCE_DMN_SUFFIX).getId(); // there should be one deployment DeploymentQuery deploymentQuery = repositoryService.createDeploymentQuery(); assertEquals(1, deploymentQuery.count()); // there should be one case definition DecisionDefinitionQuery query = repositoryService.createDecisionDefinitionQuery(); assertEquals(1, query.count()); DecisionDefinition decisionDefinition = query.singleResult(); assertTrue(decisionDefinition.getId().startsWith("decision:1:")); assertEquals("http://camunda.org/schema/1.0/dmn", decisionDefinition.getCategory()); assertEquals("CheckOrder", decisionDefinition.getName()); assertEquals("decision", decisionDefinition.getKey()); assertEquals(1, decisionDefinition.getVersion()); assertEquals(DMN_CHECK_ORDER_RESOURCE_DMN_SUFFIX, decisionDefinition.getResourceName()); assertEquals(deploymentId, decisionDefinition.getDeploymentId()); assertNull(decisionDefinition.getDiagramResourceName()); }
@Test public void dmnDeploymentWithDecisionLiteralExpression() { String deploymentId = testRule.deploy(DMN_DECISION_LITERAL_EXPRESSION).getId(); // there should be decision deployment DeploymentQuery deploymentQuery = repositoryService.createDeploymentQuery(); assertEquals(1, deploymentQuery.count()); // there should be one decision definition DecisionDefinitionQuery query = repositoryService.createDecisionDefinitionQuery(); assertEquals(1, query.count()); DecisionDefinition decisionDefinition = query.singleResult(); assertTrue(decisionDefinition.getId().startsWith("decisionLiteralExpression:1:")); assertEquals("http://camunda.org/schema/1.0/dmn", decisionDefinition.getCategory()); assertEquals("decisionLiteralExpression", decisionDefinition.getKey()); assertEquals("Decision with Literal Expression", decisionDefinition.getName()); assertEquals(1, decisionDefinition.getVersion()); assertEquals(DMN_DECISION_LITERAL_EXPRESSION, decisionDefinition.getResourceName()); assertEquals(deploymentId, decisionDefinition.getDeploymentId()); assertNull(decisionDefinition.getDiagramResourceName()); }
@Test public void dmnDeployment() { String deploymentId = testRule.deploy(DMN_CHECK_ORDER_RESOURCE).getId(); // there should be decision deployment DeploymentQuery deploymentQuery = repositoryService.createDeploymentQuery(); assertEquals(1, deploymentQuery.count()); // there should be one decision definition DecisionDefinitionQuery query = repositoryService.createDecisionDefinitionQuery(); assertEquals(1, query.count()); DecisionDefinition decisionDefinition = query.singleResult(); assertTrue(decisionDefinition.getId().startsWith("decision:1:")); assertEquals("http://camunda.org/schema/1.0/dmn", decisionDefinition.getCategory()); assertEquals("CheckOrder", decisionDefinition.getName()); assertEquals("decision", decisionDefinition.getKey()); assertEquals(1, decisionDefinition.getVersion()); assertEquals(DMN_CHECK_ORDER_RESOURCE, decisionDefinition.getResourceName()); assertEquals(deploymentId, decisionDefinition.getDeploymentId()); assertNull(decisionDefinition.getDiagramResourceName()); }
public InputStream execute(final CommandContext commandContext) { DecisionDefinition decisionDefinition = new GetDeploymentDecisionDefinitionCmd(decisionDefinitionId).execute(commandContext); final String deploymentId = decisionDefinition.getDeploymentId(); final String resourceName = decisionDefinition.getDiagramResourceName(); if (resourceName != null ) { return commandContext.runWithoutAuthorization(new Callable<InputStream>() { public InputStream call() throws Exception { return new GetDeploymentResourceCmd(deploymentId, resourceName).execute(commandContext); } }); } else { return null; } }
@Deployment(resources = { "org/camunda/bpm/engine/test/dmn/deployment/DecisionDefinitionDeployerTest.testMultipleDecisionDiagramResource.dmn11.xml", "org/camunda/bpm/engine/test/dmn/deployment/DecisionDefinitionDeployerTest.testMultipleDecisionDiagramResource.decision1.png", "org/camunda/bpm/engine/test/dmn/deployment/DecisionDefinitionDeployerTest.testMultipleDecisionDiagramResource.decision2.png", "org/camunda/bpm/engine/test/dmn/deployment/DecisionDefinitionDeployerTest.testMultipleDecisionDiagramResource.decision3.png" }) @Test public void multipleDiagramResourcesProvided() { String resourcePrefix = "org/camunda/bpm/engine/test/dmn/deployment/DecisionDefinitionDeployerTest.testMultipleDecisionDiagramResource."; DecisionDefinitionQuery decisionDefinitionQuery = repositoryService.createDecisionDefinitionQuery(); assertEquals(3, decisionDefinitionQuery.count()); for (DecisionDefinition decisionDefinition : decisionDefinitionQuery.list()) { assertEquals(resourcePrefix + decisionDefinition.getKey() + ".png", decisionDefinition.getDiagramResourceName()); } }
@Deployment(resources = { "org/camunda/bpm/engine/test/dmn/deployment/DecisionDefinitionDeployerTest.testDecisionDiagramResource.dmn11.xml", "org/camunda/bpm/engine/test/dmn/deployment/DecisionDefinitionDeployerTest.testDecisionDiagramResource.png" }) @Test public void getDecisionDiagramResource() { String resourcePrefix = "org/camunda/bpm/engine/test/dmn/deployment/DecisionDefinitionDeployerTest.testDecisionDiagramResource"; DecisionDefinition decisionDefinition = repositoryService.createDecisionDefinitionQuery().singleResult(); assertEquals(resourcePrefix + ".dmn11.xml", decisionDefinition.getResourceName()); assertEquals("decision", decisionDefinition.getKey()); String diagramResourceName = decisionDefinition.getDiagramResourceName(); assertEquals(resourcePrefix + ".png", diagramResourceName); InputStream diagramStream = repositoryService.getResourceAsStream(decisionDefinition.getDeploymentId(), diagramResourceName); final byte[] diagramBytes = IoUtil.readInputStream(diagramStream, "diagram stream"); assertEquals(2540, diagramBytes.length); }
@Test public void dmnDeploymentWithDmnSuffix() { String deploymentId = testRule.deploy(DMN_CHECK_ORDER_RESOURCE_DMN_SUFFIX).getId(); // there should be one deployment DeploymentQuery deploymentQuery = repositoryService.createDeploymentQuery(); assertEquals(1, deploymentQuery.count()); // there should be one case definition DecisionDefinitionQuery query = repositoryService.createDecisionDefinitionQuery(); assertEquals(1, query.count()); DecisionDefinition decisionDefinition = query.singleResult(); assertTrue(decisionDefinition.getId().startsWith("decision:1:")); assertEquals("http://camunda.org/schema/1.0/dmn", decisionDefinition.getCategory()); assertEquals("CheckOrder", decisionDefinition.getName()); assertEquals("decision", decisionDefinition.getKey()); assertEquals(1, decisionDefinition.getVersion()); assertEquals(DMN_CHECK_ORDER_RESOURCE_DMN_SUFFIX, decisionDefinition.getResourceName()); assertEquals(deploymentId, decisionDefinition.getDeploymentId()); assertNull(decisionDefinition.getDiagramResourceName()); }
@Test public void dmnDeployment() { String deploymentId = testRule.deploy(DMN_CHECK_ORDER_RESOURCE).getId(); // there should be decision deployment DeploymentQuery deploymentQuery = repositoryService.createDeploymentQuery(); assertEquals(1, deploymentQuery.count()); // there should be one decision definition DecisionDefinitionQuery query = repositoryService.createDecisionDefinitionQuery(); assertEquals(1, query.count()); DecisionDefinition decisionDefinition = query.singleResult(); assertTrue(decisionDefinition.getId().startsWith("decision:1:")); assertEquals("http://camunda.org/schema/1.0/dmn", decisionDefinition.getCategory()); assertEquals("CheckOrder", decisionDefinition.getName()); assertEquals("decision", decisionDefinition.getKey()); assertEquals(1, decisionDefinition.getVersion()); assertEquals(DMN_CHECK_ORDER_RESOURCE, decisionDefinition.getResourceName()); assertEquals(deploymentId, decisionDefinition.getDeploymentId()); assertNull(decisionDefinition.getDiagramResourceName()); }
@Test public void dmnDeploymentWithDecisionLiteralExpression() { String deploymentId = testRule.deploy(DMN_DECISION_LITERAL_EXPRESSION).getId(); // there should be decision deployment DeploymentQuery deploymentQuery = repositoryService.createDeploymentQuery(); assertEquals(1, deploymentQuery.count()); // there should be one decision definition DecisionDefinitionQuery query = repositoryService.createDecisionDefinitionQuery(); assertEquals(1, query.count()); DecisionDefinition decisionDefinition = query.singleResult(); assertTrue(decisionDefinition.getId().startsWith("decisionLiteralExpression:1:")); assertEquals("http://camunda.org/schema/1.0/dmn", decisionDefinition.getCategory()); assertEquals("decisionLiteralExpression", decisionDefinition.getKey()); assertEquals("Decision with Literal Expression", decisionDefinition.getName()); assertEquals(1, decisionDefinition.getVersion()); assertEquals(DMN_DECISION_LITERAL_EXPRESSION, decisionDefinition.getResourceName()); assertEquals(deploymentId, decisionDefinition.getDeploymentId()); assertNull(decisionDefinition.getDiagramResourceName()); }