示例#1
0
        public static BpmnModel GetBpmnModelFromCache(string processDefinitionId)
        {
            ProcessDefinitionCacheEntry cacheEntry = Context.ProcessEngineConfiguration.ProcessDefinitionCache.Get(processDefinitionId);

            if (cacheEntry != null)
            {
                return(cacheEntry.BpmnModel);
            }
            return(null);
        }
示例#2
0
        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));
            }
        }
示例#3
0
        /// <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);
            }
        }