コード例 #1
0
        /// <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);
            }
        }
コード例 #2
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);
            }
        }