@Override public void deploy(EngineDeployment deployment, Map<String, Object> deploymentSettings) { LOGGER.debug("Processing app deployment {}", deployment.getName()); ProcessEngineConfigurationImpl processEngineConfiguration = CommandContextUtil.getProcessEngineConfiguration(); DeploymentManager deploymentManager = processEngineConfiguration.getDeploymentManager(); Object appResourceObject = null; DeploymentEntity deploymentEntity = (DeploymentEntity) deployment; Map<String, EngineResource> resources = deploymentEntity.getResources(); for (String resourceName : resources.keySet()) { if (resourceName.endsWith(".app")) { LOGGER.info("Processing app resource {}", resourceName); EngineResource resourceEntity = resources.get(resourceName); byte[] resourceBytes = resourceEntity.getBytes(); appResourceObject = processEngineConfiguration.getAppResourceConverter().convertAppResourceToModel(resourceBytes); } } if (appResourceObject != null) { deploymentManager.getAppResourceCache().add(deployment.getId(), appResourceObject); } } }
public static BpmnModel getBpmnModelFromCache(String processDefinitionId) { ProcessDefinitionCacheEntry cacheEntry = CommandContextUtil.getProcessEngineConfiguration().getProcessDefinitionCache().get(processDefinitionId); if (cacheEntry != null) { return cacheEntry.getBpmnModel(); } return null; }
public void removeDeployment(String deploymentId, boolean cascade) { AppDeploymentEntity deployment = deploymentEntityManager.findById(deploymentId); if (deployment == null) { throw new FlowableObjectNotFoundException("Could not find a deployment with id '" + deploymentId + "'.", AppDeploymentEntity.class); } for (AppDefinition appDefinition : new AppDefinitionQueryImpl().deploymentId(deploymentId).list()) { appDefinitionCache.remove(appDefinition.getId()); } deploymentEntityManager.deleteDeploymentAndRelatedData(deploymentId, cascade); }
public static DmnDefinition getDmnDefinitionFromCache(String decisionTableId) { DecisionTableCacheEntry cacheEntry = CommandContextUtil.getDmnEngineConfiguration().getDecisionCache().get(decisionTableId); if (cacheEntry != null) { return cacheEntry.getDmnDefinition(); } return null; }
public void removeDeployment(String deploymentId, boolean cascade) { CmmnDeploymentEntity deployment = deploymentEntityManager.findById(deploymentId); if (deployment == null) { throw new FlowableObjectNotFoundException("Could not find a deployment with id '" + deploymentId + "'.", CmmnDeploymentEntity.class); } for (CaseDefinition caseDefinition : new CaseDefinitionQueryImpl().deploymentId(deploymentId).list()) { caseDefinitionCache.remove(caseDefinition.getId()); } deploymentEntityManager.deleteDeploymentAndRelatedData(deploymentId, cascade); }
protected void updateCachingAndArtifacts(AppDefinitionEntity appDefinition, AppModel appResourceModel, AppDeploymentEntity deployment) { AppEngineConfiguration appEngineConfiguration = CommandContextUtil.getAppEngineConfiguration(); DeploymentCache<AppDefinitionCacheEntry> appDefinitionCache = appEngineConfiguration.getAppDefinitionCache(); AppDefinitionCacheEntry cacheEntry = new AppDefinitionCacheEntry(appDefinition, appResourceModel); appDefinitionCache.add(appDefinition.getId(), cacheEntry); deployment.addDeployedArtifact(appDefinition); } }
public CaseDefinitionCacheEntry resolveCaseDefinition(CaseDefinition caseDefinition) { String caseDefinitionId = caseDefinition.getId(); String deploymentId = caseDefinition.getDeploymentId(); CaseDefinitionCacheEntry cachedCaseDefinition = caseDefinitionCache.get(caseDefinitionId); if (cachedCaseDefinition == null) { CmmnDeploymentEntity deployment = deploymentEntityManager.findById(deploymentId); deployment.setNew(false); deploy(deployment, null); cachedCaseDefinition = caseDefinitionCache.get(caseDefinitionId); if (cachedCaseDefinition == null) { throw new FlowableException("deployment '" + deploymentId + "' didn't put case definition '" + caseDefinitionId + "' in the cache"); } } return cachedCaseDefinition; }
public void removeDeployment(String deploymentId) { DmnDeploymentEntity deployment = deploymentEntityManager.findById(deploymentId); if (deployment == null) { throw new FlowableObjectNotFoundException("Could not find a deployment with id '" + deploymentId + "'."); } // Remove any dmn definition from the cache List<DmnDecisionTable> decisionTables = new DecisionTableQueryImpl().deploymentId(deploymentId).list(); // Delete data deploymentEntityManager.deleteDeployment(deploymentId); for (DmnDecisionTable decisionTable : decisionTables) { decisionCache.remove(decisionTable.getId()); } }
@Override public void deploy(EngineDeployment deployment, Map<String, Object> deploymentSettings) { LOGGER.debug("Processing rules deployment {}", deployment.getName()); KnowledgeBuilder knowledgeBuilder = null; DeploymentManager deploymentManager = CommandContextUtil.getProcessEngineConfiguration().getDeploymentManager(); Map<String, EngineResource> resources = deployment.getResources(); for (String resourceName : resources.keySet()) { if (resourceName.endsWith(".drl")) { // is only parsing .drls sufficient? what about other rule dsl's? (@see ResourceType) LOGGER.info("Processing rules resource {}", resourceName); if (knowledgeBuilder == null) { knowledgeBuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); } EngineResource resourceEntity = resources.get(resourceName); byte[] resourceBytes = resourceEntity.getBytes(); Resource droolsResource = ResourceFactory.newByteArrayResource(resourceBytes); knowledgeBuilder.add(droolsResource, ResourceType.DRL); } } if (knowledgeBuilder != null) { KieBase kieBase = knowledgeBuilder.newKieBase(); deploymentManager.getKnowledgeBaseCache().add(deployment.getId(), kieBase); } } }
public static AppModel getAppModel(String appDefinitionId) { AppDeploymentManager deploymentManager = CommandContextUtil.getAppEngineConfiguration().getDeploymentManager(); AppDefinitionCacheEntry cacheEntry = deploymentManager.getAppDefinitionCache().get(appDefinitionId); if (cacheEntry != null) { return cacheEntry.getAppModel(); } deploymentManager.findDeployedAppDefinitionById(appDefinitionId); return deploymentManager.getAppDefinitionCache().get(appDefinitionId).getAppModel(); }
public void removeDeployment(String deploymentId) { FormDeploymentEntity deployment = deploymentEntityManager.findById(deploymentId); if (deployment == null) { throw new FlowableObjectNotFoundException("Could not find a deployment with id '" + deploymentId + "'."); } // Remove any form definition from the cache List<FormDefinition> forms = new FormDefinitionQueryImpl().deploymentId(deploymentId).list(); // Delete data deploymentEntityManager.deleteDeployment(deploymentId); for (FormDefinition form : forms) { formCache.remove(form.getId()); } }
protected void addProcessDefinitionToCache(ProcessDefinitionEntity processDefinition, Map<String, BpmnModel> bpmnModelMap, ProcessEngineConfigurationImpl processEngineConfiguration, CommandContext commandContext) { // Add to cache DeploymentManager deploymentManager = processEngineConfiguration.getDeploymentManager(); BpmnModel bpmnModel = bpmnModelMap.get(processDefinition.getKey()); ProcessDefinitionCacheEntry cacheEntry = new ProcessDefinitionCacheEntry(processDefinition, bpmnModel, bpmnModel.getProcessById(processDefinition.getKey())); deploymentManager.getProcessDefinitionCache().add(processDefinition.getId(), cacheEntry); addDefinitionInfoToCache(processDefinition, processEngineConfiguration, commandContext); }
public AppDefinitionCacheEntry resolveAppDefinition(AppDefinition appDefinition) { String appDefinitionId = appDefinition.getId(); String deploymentId = appDefinition.getDeploymentId(); AppDefinitionCacheEntry cachedAppDefinition = appDefinitionCache.get(appDefinitionId); if (cachedAppDefinition == null) { AppDeploymentEntity deployment = deploymentEntityManager.findById(deploymentId); deployment.setNew(false); deploy(deployment, null); cachedAppDefinition = appDefinitionCache.get(appDefinitionId); if (cachedAppDefinition == null) { throw new FlowableException("deployment '" + deploymentId + "' didn't put app definition '" + appDefinitionId + "' in the cache"); } } return cachedAppDefinition; }
protected void changeProcessDefinitionState(CommandContext commandContext, List<ProcessDefinitionEntity> processDefinitions) { for (ProcessDefinitionEntity processDefinition : processDefinitions) { SuspensionStateUtil.setSuspensionState(processDefinition, getProcessDefinitionSuspensionState()); // Evict cache commandContext .getProcessEngineConfiguration() .getDeploymentManager() .getProcessDefinitionCache() .remove(processDefinition.getId()); // Suspend process instances (if needed) if (includeProcessInstances) { int currentStartIndex = 0; List<ProcessInstance> processInstances = fetchProcessInstancesPage(commandContext, processDefinition, currentStartIndex); while (!processInstances.isEmpty()) { for (ProcessInstance processInstance : processInstances) { AbstractSetProcessInstanceStateCmd processInstanceCmd = getProcessInstanceChangeStateCmd(processInstance); processInstanceCmd.execute(commandContext); } // Fetch new batch of process instances currentStartIndex += processInstances.size(); processInstances = fetchProcessInstancesPage(commandContext, processDefinition, currentStartIndex); } } } }
@Override public void deploy(DeploymentEntity deployment, Map<String, Object> deploymentSettings) { LOGGER.debug("Processing deployment {}", deployment.getName()); KnowledgeBuilder knowledgeBuilder = null; DeploymentManager deploymentManager = Context .getProcessEngineConfiguration() .getDeploymentManager(); Map<String, ResourceEntity> resources = deployment.getResources(); for (String resourceName : resources.keySet()) { LOGGER.info("Processing resource {}", resourceName); if (resourceName.endsWith(".drl")) { // is only parsing .drls sufficient? what about other rule dsl's? (@see ResourceType) if (knowledgeBuilder == null) { knowledgeBuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); } ResourceEntity resourceEntity = resources.get(resourceName); byte[] resourceBytes = resourceEntity.getBytes(); Resource droolsResource = ResourceFactory.newByteArrayResource(resourceBytes); knowledgeBuilder.add(droolsResource, ResourceType.DRL); } } if (knowledgeBuilder != null) { KieBase knowledgeBase = knowledgeBuilder.newKieBase(); deploymentManager.getKnowledgeBaseCache().add(deployment.getId(), knowledgeBase); } } }
public static CmmnModel getCmmnModel(String caseDefinitionId) { CmmnDeploymentManager deploymentManager = CommandContextUtil.getCmmnEngineConfiguration().getDeploymentManager(); CaseDefinitionCacheEntry cacheEntry = deploymentManager.getCaseDefinitionCache().get(caseDefinitionId); if (cacheEntry != null) { return cacheEntry.getCmmnModel(); } deploymentManager.findDeployedCaseDefinitionById(caseDefinitionId); return deploymentManager.getCaseDefinitionCache().get(caseDefinitionId).getCmmnModel(); }