protected DeploymentBuilder addBytes(String resourceName, byte[] bytes) { ResourceEntity resource = new ResourceEntity(); resource.setBytes(bytes); resource.setName(resourceName); deployment.addResource(resource); return this; }
protected void addResources(List<ResourceEntity> resources, DeploymentBuilderImpl deploymentBuilder) { DeploymentEntity deployment = deploymentBuilder.getDeployment(); Map<String, ResourceEntity> existingResources = deployment.getResources(); for (ResourceEntity resource : resources) { String resourceName = resource.getName(); if (existingResources != null && existingResources.containsKey(resourceName)) { String message = String.format("Cannot add resource with id '%s' and name '%s' from " + "deployment with id '%s' to new deployment because the new deployment contains " + "already a resource with same name.", resource.getId(), resourceName, resource.getDeploymentId()); throw new NotValidException(message); } ByteArrayInputStream inputStream = new ByteArrayInputStream(resource.getBytes()); deploymentBuilder.addInputStream(resourceName, inputStream); } }
protected void checkDuplicateResourceName(List<ResourceEntity> resources) { Map<String, ResourceEntity> resourceMap = new HashMap<String, ResourceEntity>(); for (ResourceEntity resource : resources) { String name = resource.getName(); ResourceEntity duplicate = resourceMap.get(name); if (duplicate != null) { String deploymentId = resource.getDeploymentId(); if (!deploymentId.equals(duplicate.getDeploymentId())) { String message = String.format("The deployments with id '%s' and '%s' contain a resource with same name '%s'.", deploymentId, duplicate.getDeploymentId(), name); throw new NotValidException(message); } } resourceMap.put(name, resource); } }
@Override protected List<DecisionRequirementsDefinitionEntity> transformDefinitions(DeploymentEntity deployment, ResourceEntity resource, Properties properties) { byte[] bytes = resource.getBytes(); ByteArrayInputStream inputStream = new ByteArrayInputStream(bytes); try { DecisionRequirementsDefinitionEntity drd = transformer .createTransform() .modelInstance(inputStream) .transformDecisionRequirementsGraph(); return Collections.singletonList(drd); } catch (Exception e) { throw LOG.exceptionParseDmnResource(resource.getName(), e); } }
public void addResource(ResourceEntity resource) { if (resources==null) { resources = new HashMap<String, ResourceEntity>(); } resources.put(resource.getName(), resource); }
public void insertDeployment(DeploymentEntity deployment) { getDbEntityManager().insert(deployment); createDefaultAuthorizations(deployment); for (ResourceEntity resource : deployment.getResources().values()) { resource.setDeploymentId(deployment.getId()); resource.setType(ResourceTypes.REPOSITORY.getValue()); resource.setCreateTime(ClockUtil.getCurrentTime()); getResourceManager().insertResource(resource); } Context .getProcessEngineConfiguration() .getDeploymentCache() .deploy(deployment); }
String resourceName = deployedResource.getName(); ResourceEntity existingResource = existingResources.get(resourceName); || existingResource.isGenerated() || resourcesDiffer(deployedResource, existingResource)) {
protected void ensureResourcesWithIdsExist(String deploymentId, Set<String> expectedIds, List<ResourceEntity> actual) { Map<String, ResourceEntity> resources = new HashMap<String, ResourceEntity>(); for (ResourceEntity resource : actual) { resources.put(resource.getId(), resource); } ensureResourcesWithKeysExist(deploymentId, expectedIds, resources, "id"); }
@Override protected List<DecisionRequirementsDefinitionEntity> transformDefinitions(DeploymentEntity deployment, ResourceEntity resource, Properties properties) { byte[] bytes = resource.getBytes(); ByteArrayInputStream inputStream = new ByteArrayInputStream(bytes); try { DecisionRequirementsDefinitionEntity drd = transformer .createTransform() .modelInstance(inputStream) .transformDecisionRequirementsGraph(); return Collections.singletonList(drd); } catch (Exception e) { throw LOG.exceptionParseDmnResource(resource.getName(), e); } }
public void addResource(ResourceEntity resource) { if (resources==null) { resources = new HashMap<String, ResourceEntity>(); } resources.put(resource.getName(), resource); }
public void insertDeployment(DeploymentEntity deployment) { getDbEntityManager().insert(deployment); createDefaultAuthorizations(deployment); for (ResourceEntity resource : deployment.getResources().values()) { resource.setDeploymentId(deployment.getId()); resource.setType(ResourceTypes.REPOSITORY.getValue()); resource.setCreateTime(ClockUtil.getCurrentTime()); getResourceManager().insertResource(resource); } Context .getProcessEngineConfiguration() .getDeploymentCache() .deploy(deployment); }
protected void checkDuplicateResourceName(List<ResourceEntity> resources) { Map<String, ResourceEntity> resourceMap = new HashMap<String, ResourceEntity>(); for (ResourceEntity resource : resources) { String name = resource.getName(); ResourceEntity duplicate = resourceMap.get(name); if (duplicate != null) { String deploymentId = resource.getDeploymentId(); if (!deploymentId.equals(duplicate.getDeploymentId())) { String message = String.format("The deployments with id '%s' and '%s' contain a resource with same name '%s'.", deploymentId, duplicate.getDeploymentId(), name); throw new NotValidException(message); } } resourceMap.put(name, resource); } }
String resourceName = deployedResource.getName(); ResourceEntity existingResource = existingResources.get(resourceName); || existingResource.isGenerated() || resourcesDiffer(deployedResource, existingResource)) {
protected void ensureResourcesWithIdsExist(String deploymentId, Set<String> expectedIds, List<ResourceEntity> actual) { Map<String, ResourceEntity> resources = new HashMap<String, ResourceEntity>(); for (ResourceEntity resource : actual) { resources.put(resource.getId(), resource); } ensureResourcesWithKeysExist(deploymentId, expectedIds, resources, "id"); }
protected DeploymentBuilder addBytes(String resourceName, byte[] bytes) { ResourceEntity resource = new ResourceEntity(); resource.setBytes(bytes); resource.setName(resourceName); deployment.addResource(resource); return this; }
protected void addResources(List<ResourceEntity> resources, DeploymentBuilderImpl deploymentBuilder) { DeploymentEntity deployment = deploymentBuilder.getDeployment(); Map<String, ResourceEntity> existingResources = deployment.getResources(); for (ResourceEntity resource : resources) { String resourceName = resource.getName(); if (existingResources != null && existingResources.containsKey(resourceName)) { String message = String.format("Cannot add resource with id '%s' and name '%s' from " + "deployment with id '%s' to new deployment because the new deployment contains " + "already a resource with same name.", resource.getId(), resourceName, resource.getDeploymentId()); throw new NotValidException(message); } ByteArrayInputStream inputStream = new ByteArrayInputStream(resource.getBytes()); deploymentBuilder.addInputStream(resourceName, inputStream); } }
public List<CaseDefinitionEntity> transform() { // get name of resource String resourceName = resource.getName(); // create an input stream byte[] bytes = resource.getBytes(); ByteArrayInputStream inputStream = new ByteArrayInputStream(bytes); try { // read input stream model = Cmmn.readModelFromStream(inputStream); } catch (CmmnModelException e) { throw LOG.transformResourceException(resourceName, e); } // TODO: use model API to validate (ie. // semantic and execution validation) model context.setModel(model); context.setDeployment(deployment); context.setExpressionManager(expressionManager); try { transformRootElement(); } catch (Exception e) { // ALL unexpected exceptions should bubble up since they are not handled // accordingly by underlying parse-methods and the process can't be deployed throw LOG.parseProcessException(resourceName, e); } return caseDefinitions; }
protected Set<String> retrieveProcessKeysFromResources(Map<String, ResourceEntity> resources) { Set<String> keys = new HashSet<String>(); for (ResourceEntity resource : resources.values()) { if (isBpmnResource(resource)) { ByteArrayInputStream byteStream = new ByteArrayInputStream(resource.getBytes()); BpmnModelInstance model = Bpmn.readModelFromStream(byteStream); for (Process process : model.getDefinitions().getChildElementsByType(Process.class)) { keys.add(process.getId()); } } else if (isCmmnResource(resource)) { ByteArrayInputStream byteStream = new ByteArrayInputStream(resource.getBytes()); CmmnModelInstance model = Cmmn.readModelFromStream(byteStream); for (Case cmmnCase : model.getDefinitions().getCases()) { keys.add(cmmnCase.getId()); } } } return keys; }