public ParsedDeployment build() { List<DecisionTableEntity> decisionTables = new ArrayList<>(); Map<DecisionTableEntity, DmnParse> decisionTablesToDmnParseMap = new LinkedHashMap<>(); Map<DecisionTableEntity, EngineResource> decisionTablesToResourceMap = new LinkedHashMap<>(); for (EngineResource resource : deployment.getResources().values()) { if (DmnResourceUtil.isDmnResource(resource.getName())) { LOGGER.debug("Processing DMN resource {}", resource.getName()); DmnParse parse = createDmnParseFromResource(resource); for (DecisionTableEntity decisionTable : parse.getDecisionTables()) { decisionTables.add(decisionTable); decisionTablesToDmnParseMap.put(decisionTable, parse); decisionTablesToResourceMap.put(decisionTable, resource); } } } return new ParsedDeployment(deployment, decisionTables, decisionTablesToDmnParseMap, decisionTablesToResourceMap); }
public ParsedDeployment build() { List<ProcessDefinitionEntity> processDefinitions = new ArrayList<>(); Map<ProcessDefinitionEntity, BpmnParse> processDefinitionsToBpmnParseMap = new LinkedHashMap<>(); Map<ProcessDefinitionEntity, EngineResource> processDefinitionsToResourceMap = new LinkedHashMap<>(); DeploymentEntity deploymentEntity = (DeploymentEntity) deployment; for (EngineResource resource : deploymentEntity.getResources().values()) { if (isBpmnResource(resource.getName())) { LOGGER.debug("Processing BPMN resource {}", resource.getName()); BpmnParse parse = createBpmnParseFromResource(resource); for (ProcessDefinitionEntity processDefinition : parse.getProcessDefinitions()) { processDefinitions.add(processDefinition); processDefinitionsToBpmnParseMap.put(processDefinition, parse); processDefinitionsToResourceMap.put(processDefinition, resource); } } } return new ParsedDeployment(deploymentEntity, processDefinitions, processDefinitionsToBpmnParseMap, processDefinitionsToResourceMap); }
/** * Updates all the process definition entities to have the correct resource names. */ public void setResourceNamesOnProcessDefinitions(ParsedDeployment parsedDeployment) { for (ProcessDefinitionEntity processDefinition : parsedDeployment.getAllProcessDefinitions()) { String resourceName = parsedDeployment.getResourceForProcessDefinition(processDefinition).getName(); processDefinition.setResourceName(resourceName); } }
protected void setResourceNamesOnCaseDefinitions(CmmnParseResult parseResult) { for (CaseDefinitionEntity caseDefinitionEntity : parseResult.getAllCaseDefinitions()) { String resourceName = parseResult.getResourceForCaseDefinition(caseDefinitionEntity).getName(); caseDefinitionEntity.setResourceName(resourceName); } }
/** * Updates all the decision table entities to have the correct resource names. */ public void setResourceNamesOnDecisionTables(ParsedDeployment parsedDeployment) { for (DecisionTableEntity decisionTable : parsedDeployment.getAllDecisionTables()) { String resourceName = parsedDeployment.getResourceForDecisionTable(decisionTable).getName(); decisionTable.setResourceName(resourceName); } }
protected BpmnParse createBpmnParseFromResource(EngineResource resource) { String resourceName = resource.getName(); ByteArrayInputStream inputStream = new ByteArrayInputStream(resource.getBytes()); BpmnParse bpmnParse = bpmnParser.createParse() .sourceInputStream(inputStream) .setSourceSystemId(resourceName) .deployment(deployment) .name(resourceName); if (deploymentSettings != null) { // Schema validation if needed if (deploymentSettings.containsKey(DeploymentSettings.IS_BPMN20_XSD_VALIDATION_ENABLED)) { bpmnParse.setValidateSchema((Boolean) deploymentSettings.get(DeploymentSettings.IS_BPMN20_XSD_VALIDATION_ENABLED)); } // Process validation if needed if (deploymentSettings.containsKey(DeploymentSettings.IS_PROCESS_VALIDATION_ENABLED)) { bpmnParse.setValidateProcess((Boolean) deploymentSettings.get(DeploymentSettings.IS_PROCESS_VALIDATION_ENABLED)); } } else { // On redeploy, we assume it is validated at the first deploy bpmnParse.setValidateSchema(false); bpmnParse.setValidateProcess(false); } try { bpmnParse.execute(); } catch (Exception e) { LOGGER.error("Could not parse resource {}", resource.getName(), e); throw e; } return bpmnParse; }
protected DmnParse createDmnParseFromResource(EngineResource resource) { String resourceName = resource.getName(); ByteArrayInputStream inputStream = new ByteArrayInputStream(resource.getBytes()); DmnParse dmnParse = dmnParseFactory.createParse() .sourceInputStream(inputStream) .setSourceSystemId(resourceName) .deployment(deployment) .name(resourceName); if (deploymentSettings != null) { // Schema validation if needed if (deploymentSettings.containsKey(DeploymentSettings.IS_DMN_XSD_VALIDATION_ENABLED)) { dmnParse.setValidateSchema((Boolean) deploymentSettings.get(DeploymentSettings.IS_DMN_XSD_VALIDATION_ENABLED)); } } else { // On redeploy, we assume it is validated at the first deploy dmnParse.setValidateSchema(false); } dmnParse.execute(CommandContextUtil.getDmnEngineConfiguration()); return dmnParse; }
@Override public void deploy(EngineDeployment deployment, Map<String, Object> deploymentSettings) { LOGGER.debug("Processing deployment {}", deployment.getName()); CmmnParseResult parseResult = new CmmnParseResult(deployment); for (EngineResource resource : deployment.getResources().values()) { if (isCmmnResource(resource.getName())) { LOGGER.debug("Processing CMMN resource {}", resource.getName()); parseResult.merge(cmmnParser.parse(resource)); } } verifyCaseDefinitionsDoNotShareKeys(parseResult.getAllCaseDefinitions()); copyDeploymentValuesToCaseDefinitions(parseResult.getDeployment(), parseResult.getAllCaseDefinitions()); setResourceNamesOnCaseDefinitions(parseResult); createAndPersistNewDiagramsIfNeeded(parseResult); setCaseDefinitionDiagramNames(parseResult); if (deployment.isNew()) { Map<CaseDefinitionEntity, CaseDefinitionEntity> mapOfNewCaseDefinitionToPreviousVersion = getPreviousVersionsOfCaseDefinitions(parseResult); setCaseDefinitionVersionsAndIds(parseResult, mapOfNewCaseDefinitionToPreviousVersion); persistCaseDefinitions(parseResult); } else { makeCaseDefinitionsConsistentWithPersistedVersions(parseResult); } updateCachingAndArtifacts(parseResult); }
activiti5ResourceEntity.setName(activiti6ResourceEntity.getName()); activiti5ResourceEntity.setBytes(activiti6ResourceEntity.getBytes()); activiti5Resources.put(resourceKey, activiti5ResourceEntity);