public static BpmnModel GetBpmnModelFromCache(string processDefinitionId) { ProcessDefinitionCacheEntry cacheEntry = Context.ProcessEngineConfiguration.ProcessDefinitionCache.Get(processDefinitionId); if (cacheEntry != null) { return(cacheEntry.BpmnModel); } return(null); }
public static IProcessDefinition GetProcessDefinition(string processDefinitionId, bool checkCacheOnly) { ProcessEngineConfigurationImpl processEngineConfiguration = Context.ProcessEngineConfiguration; if (checkCacheOnly) { ProcessDefinitionCacheEntry cacheEntry = processEngineConfiguration.ProcessDefinitionCache.Get(processDefinitionId); if (cacheEntry != null) { return(cacheEntry.ProcessDefinition); } return(null); } else { // This will check the cache in the findDeployedProcessDefinitionById method return(processEngineConfiguration.DeploymentManager.FindDeployedProcessDefinitionById(processDefinitionId)); } }
/// <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); } }