/// <summary> /// Saves each process definition. It is assumed that the deployment is new, the definitions /// have never been saved before, and that they have all their values properly set up. /// </summary> protected internal virtual void PersistProcessDefinitionsAndAuthorizations(ParsedDeployment parsedDeployment) { ICommandContext commandContext = Context.CommandContext; IProcessDefinitionEntityManager processDefinitionManager = commandContext.ProcessDefinitionEntityManager; foreach (IProcessDefinitionEntity processDefinition in parsedDeployment.AllProcessDefinitions) { processDefinitionManager.Insert(processDefinition, false); bpmnDeploymentHelper.AddAuthorizationsForNewProcessDefinition(parsedDeployment.GetProcessModelForProcessDefinition(processDefinition), processDefinition); } }
/// <summary> /// Ensures that the process definition is cached in the appropriate places, including the /// deployment's collection of deployed artifacts and the deployment manager's cache, as well /// as caching any ProcessDefinitionInfos. /// </summary> public virtual void UpdateCachingAndArtifacts(ParsedDeployment parsedDeployment) { ICommandContext commandContext = Context.CommandContext; ProcessEngineConfigurationImpl processEngineConfiguration = Context.ProcessEngineConfiguration; IDeploymentCache <ProcessDefinitionCacheEntry> processDefinitionCache = processEngineConfiguration.DeploymentManager.ProcessDefinitionCache; IDeploymentEntity deployment = parsedDeployment.Deployment; foreach (IProcessDefinitionEntity processDefinition in parsedDeployment.AllProcessDefinitions) { BpmnModel bpmnModel = parsedDeployment.GetBpmnModelForProcessDefinition(processDefinition); Process process = parsedDeployment.GetProcessModelForProcessDefinition(processDefinition); ProcessDefinitionCacheEntry cacheEntry = new ProcessDefinitionCacheEntry(processDefinition, bpmnModel, process); processDefinitionCache.Add(processDefinition.Id, cacheEntry); AddDefinitionInfoToCache(processDefinition, processEngineConfiguration, commandContext); // Add to deployment for further usage deployment.AddDeployedArtifact(processDefinition); } }