示例#1
0
        public virtual Void execute(CommandContext commandContext)
        {
            ensureNotEmpty(typeof(BadUserRequestException), "processInstanceId", processInstanceId);

            HistoricProcessInstanceEntity instance = commandContext.HistoricProcessInstanceManager.findHistoricProcessInstance(processInstanceId);

            ensureNotNull(typeof(NotFoundException), "No historic process instance found with id: " + processInstanceId, "instance", instance);

            foreach (CommandChecker checker in commandContext.ProcessEngineConfiguration.CommandCheckers)
            {
                checker.checkDeleteHistoricVariableInstancesByProcessInstance(instance);
            }

            commandContext.HistoricDetailManager.deleteHistoricDetailsByProcessInstanceIds(Arrays.asList(processInstanceId));
            commandContext.HistoricVariableInstanceManager.deleteHistoricVariableInstanceByProcessInstanceIds(Arrays.asList(processInstanceId));

            // create user operation log
//JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET:
//ORIGINAL LINE: org.camunda.bpm.engine.impl.repository.ResourceDefinitionEntity<?> definition = null;
            ResourceDefinitionEntity <object> definition = null;

            try
            {
                definition = commandContext.ProcessEngineConfiguration.DeploymentCache.findDeployedProcessDefinitionById(instance.ProcessDefinitionId);
            }
            catch (NullValueException)
            {
                // definition has been deleted already
            }
            commandContext.OperationLogManager.logHistoricVariableOperation(org.camunda.bpm.engine.history.UserOperationLogEntry_Fields.OPERATION_TYPE_DELETE_HISTORY, instance, definition, PropertyChange.EMPTY_CHANGE);

            return(null);
        }
示例#2
0
        public static ProcessApplicationReference getTargetProcessApplication(ResourceDefinitionEntity definition)
        {
            ProcessApplicationReference reference = getTargetProcessApplication(definition.DeploymentId);

            if (reference == null && areProcessApplicationsRegistered())
            {
                ResourceDefinitionEntity previous = definition.PreviousDefinition;

                // do it in a iterative way instead of recursive to avoid
                // a possible StackOverflowException in cases with a lot
                // of versions of a definition
                while (previous != null)
                {
                    reference = getTargetProcessApplication(previous.DeploymentId);

                    if (reference == null)
                    {
                        previous = previous.PreviousDefinition;
                    }
                    else
                    {
                        return(reference);
                    }
                }
            }

            return(reference);
        }
示例#3
0
 public virtual void removeArtifact(ResourceDefinitionEntity notDeployedArtifact)
 {
     if (deployedArtifacts != null)
     {
         System.Collections.IList artifacts = deployedArtifacts[notDeployedArtifact.GetType()];
         if (artifacts != null)
         {
             artifacts.Remove(notDeployedArtifact);
             if (artifacts.Count == 0)
             {
                 deployedArtifacts.Remove(notDeployedArtifact.GetType());
             }
         }
     }
 }
示例#4
0
        // Deployed artifacts manipulation //////////////////////////////////////////

        public virtual void addDeployedArtifact(ResourceDefinitionEntity deployedArtifact)
        {
            if (deployedArtifacts == null)
            {
                deployedArtifacts = new Dictionary <Type, System.Collections.IList>();
            }

            Type clazz = deployedArtifact.GetType();

            System.Collections.IList artifacts = deployedArtifacts[clazz];
            if (artifacts == null)
            {
                artifacts = new List <object>();
                deployedArtifacts[clazz] = artifacts;
            }

            artifacts.Add(deployedArtifact);
        }
示例#5
0
        public virtual Void execute(CommandContext commandContext)
        {
            ensureNotEmpty(typeof(BadUserRequestException), "variableInstanceId", variableInstanceId);

            HistoricVariableInstanceEntity variable = commandContext.HistoricVariableInstanceManager.findHistoricVariableInstanceByVariableInstanceId(variableInstanceId);

            ensureNotNull(typeof(NotFoundException), "No historic variable instance found with id: " + variableInstanceId, "variable", variable);

            foreach (CommandChecker checker in commandContext.ProcessEngineConfiguration.CommandCheckers)
            {
                checker.checkDeleteHistoricVariableInstance(variable);
            }

            commandContext.HistoricDetailManager.deleteHistoricDetailsByVariableInstanceId(variableInstanceId);

            commandContext.HistoricVariableInstanceManager.deleteHistoricVariableInstanceByVariableInstanceId(variableInstanceId);

            // create user operation log
//JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET:
//ORIGINAL LINE: org.camunda.bpm.engine.impl.repository.ResourceDefinitionEntity<?> definition = null;
            ResourceDefinitionEntity <object> definition = null;

            try
            {
                if (!string.ReferenceEquals(variable.ProcessDefinitionId, null))
                {
                    definition = commandContext.ProcessEngineConfiguration.DeploymentCache.findDeployedProcessDefinitionById(variable.ProcessDefinitionId);
                }
                else if (!string.ReferenceEquals(variable.CaseDefinitionId, null))
                {
                    definition = commandContext.ProcessEngineConfiguration.DeploymentCache.findDeployedCaseDefinitionById(variable.CaseDefinitionId);
                }
            }
            catch (NullValueException)
            {
                // definition has been deleted already
            }
            commandContext.OperationLogManager.logHistoricVariableOperation(org.camunda.bpm.engine.history.UserOperationLogEntry_Fields.OPERATION_TYPE_DELETE_HISTORY, variable, definition, new PropertyChange("name", null, variable.Name));

            return(null);
        }
示例#6
0
        public virtual UserOperationLogContextEntryBuilder inContextOf <T1>(HistoricVariableInstanceEntity variable, ResourceDefinitionEntity <T1> definition, IList <PropertyChange> propertyChanges)
        {
            if (propertyChanges == null || propertyChanges.Count == 0)
            {
                if (OPERATION_TYPE_CREATE.Equals(entry_Renamed.OperationType))
                {
                    propertyChanges = Arrays.asList(PropertyChange.EMPTY_CHANGE);
                }
            }
            entry_Renamed.PropertyChanges       = propertyChanges;
            entry_Renamed.RootProcessInstanceId = variable.RootProcessInstanceId;
            entry_Renamed.ProcessDefinitionId   = variable.ProcessDefinitionId;
            entry_Renamed.ProcessInstanceId     = variable.ProcessInstanceId;
            entry_Renamed.ExecutionId           = variable.ExecutionId;
            entry_Renamed.CaseDefinitionId      = variable.CaseDefinitionId;
            entry_Renamed.CaseInstanceId        = variable.CaseInstanceId;
            entry_Renamed.CaseExecutionId       = variable.CaseExecutionId;
            entry_Renamed.TaskId = variable.TaskId;

            if (definition != null)
            {
                if (definition is ProcessDefinitionEntity)
                {
                    entry_Renamed.ProcessDefinitionKey = definition.Key;
                }
                entry_Renamed.DeploymentId = definition.DeploymentId;
            }

            return(this);
        }
示例#7
0
 public CallableAnonymousInnerClass(ModelInstanceCache <InstanceType, DefinitionType> outerInstance, ResourceDefinitionEntity definitionEntity, CommandContext commandContext)
 {
     this.outerInstance    = outerInstance;
     this.definitionEntity = definitionEntity;
     this.commandContext   = commandContext;
 }
示例#8
0
 public CommandAnonymousInnerClass(MultiTenancyRepositoryServiceTest outerInstance, ResourceDefinitionEntity definitionEntity)
 {
     this.outerInstance    = outerInstance;
     this.definitionEntity = definitionEntity;
 }
示例#9
0
        public virtual void logHistoricVariableOperation <T1>(string operation, HistoricVariableInstanceEntity historicVariableInstance, ResourceDefinitionEntity <T1> definition, PropertyChange propertyChange)
        {
            if (UserOperationLogEnabled)
            {
                UserOperationLogContext context = new UserOperationLogContext();

                UserOperationLogContextEntryBuilder entryBuilder = UserOperationLogContextEntryBuilder.entry(operation, EntityTypes.VARIABLE).category(org.camunda.bpm.engine.history.UserOperationLogEntry_Fields.CATEGORY_OPERATOR).propertyChanges(propertyChange).inContextOf(historicVariableInstance, definition, Arrays.asList(propertyChange));

                context.addEntry(entryBuilder.create());
                fireUserOperationLog(context);
            }
        }