Example #1
0
        /// <summary>
        /// customized insert behavior for HistoricVariableUpdateEventEntity </summary>
        protected internal virtual void insertHistoricVariableUpdateEntity(HistoricVariableUpdateEventEntity historyEvent)
        {
            DbEntityManager dbEntityManager = DbEntityManager;

            // insert update only if history level = FULL
            if (shouldWriteHistoricDetail(historyEvent))
            {
                // insert byte array entity (if applicable)
                sbyte[] byteValue = historyEvent.ByteValue;
                if (byteValue != null)
                {
                    ByteArrayEntity byteArrayEntity = new ByteArrayEntity(historyEvent.VariableName, byteValue, ResourceTypes.HISTORY);
                    byteArrayEntity.RootProcessInstanceId = historyEvent.RootProcessInstanceId;
                    byteArrayEntity.RemovalTime           = historyEvent.RemovalTime;

                    Context.CommandContext.ByteArrayManager.insertByteArray(byteArrayEntity);
                    historyEvent.ByteArrayId = byteArrayEntity.Id;
                }
                dbEntityManager.insert(historyEvent);
            }

            // always insert/update HistoricProcessVariableInstance
            if (historyEvent.isEventOfType(HistoryEventTypes.VARIABLE_INSTANCE_CREATE))
            {
                HistoricVariableInstanceEntity persistentObject = new HistoricVariableInstanceEntity(historyEvent);
                dbEntityManager.insert(persistentObject);
            }
            else if (historyEvent.isEventOfType(HistoryEventTypes.VARIABLE_INSTANCE_UPDATE) || historyEvent.isEventOfType(HistoryEventTypes.VARIABLE_INSTANCE_MIGRATE))
            {
                HistoricVariableInstanceEntity historicVariableInstanceEntity = dbEntityManager.selectById(typeof(HistoricVariableInstanceEntity), historyEvent.VariableInstanceId);
                if (historicVariableInstanceEntity != null)
                {
                    historicVariableInstanceEntity.updateFromEvent(historyEvent);
                    historicVariableInstanceEntity.State = org.camunda.bpm.engine.history.HistoricVariableInstance_Fields.STATE_CREATED;
                }
                else
                {
                    // #CAM-1344 / #SUPPORT-688
                    // this is a FIX for process instances which were started in camunda fox 6.1 and migrated to camunda BPM 7.0.
                    // in fox 6.1 the HistoricVariable instances were flushed to the DB when the process instance completed.
                    // Since fox 6.2 we populate the HistoricVariable table as we go.
                    HistoricVariableInstanceEntity persistentObject = new HistoricVariableInstanceEntity(historyEvent);
                    dbEntityManager.insert(persistentObject);
                }
            }
            else if (historyEvent.isEventOfType(HistoryEventTypes.VARIABLE_INSTANCE_DELETE))
            {
                HistoricVariableInstanceEntity historicVariableInstanceEntity = dbEntityManager.selectById(typeof(HistoricVariableInstanceEntity), historyEvent.VariableInstanceId);
                if (historicVariableInstanceEntity != null)
                {
                    historicVariableInstanceEntity.State = org.camunda.bpm.engine.history.HistoricVariableInstance_Fields.STATE_DELETED;
                }
            }
        }
Example #2
0
        /// <summary>
        /// general history event insert behavior </summary>
        protected internal virtual void insertOrUpdate(HistoryEvent historyEvent)
        {
//JAVA TO C# CONVERTER WARNING: The original Java variable was marked 'final':
//ORIGINAL LINE: final org.camunda.bpm.engine.impl.db.entitymanager.DbEntityManager dbEntityManager = getDbEntityManager();
            DbEntityManager dbEntityManager = DbEntityManager;

            if (isInitialEvent(historyEvent))
            {
                dbEntityManager.insert(historyEvent);
            }
            else
            {
                if (dbEntityManager.getCachedEntity(historyEvent.GetType(), historyEvent.Id) == null)
                {
                    if (historyEvent is HistoricScopeInstanceEvent)
                    {
                        // if this is a scope, get start time from existing event in DB
                        HistoricScopeInstanceEvent existingEvent = (HistoricScopeInstanceEvent)dbEntityManager.selectById(historyEvent.GetType(), historyEvent.Id);
                        if (existingEvent != null)
                        {
                            HistoricScopeInstanceEvent historicScopeInstanceEvent = (HistoricScopeInstanceEvent)historyEvent;
                            historicScopeInstanceEvent.StartTime = existingEvent.StartTime;
                        }
                    }
                    if (string.ReferenceEquals(historyEvent.Id, null))
                    {
                        //          dbSqlSession.insert(historyEvent);
                    }
                    else
                    {
                        dbEntityManager.merge(historyEvent);
                    }
                }
            }
        }
Example #3
0
            public override Void execute(CommandContext commandContext)
            {
                DbEntityManagerFactory dbEntityManagerFactory = new DbEntityManagerFactory(Context.ProcessEngineConfiguration.IdGenerator);
                DbEntityManager        newEntityManager       = dbEntityManagerFactory.openSession();

                HistoricProcessInstanceEventEntity hpi = new HistoricProcessInstanceEventEntity();

                hpi.Id = id;
                hpi.ProcessInstanceId   = id;
                hpi.ProcessDefinitionId = "someProcDefId";
                hpi.StartTime           = DateTime.Now;
                hpi.State = org.camunda.bpm.engine.history.HistoricProcessInstance_Fields.STATE_ACTIVE;

                newEntityManager.insert(hpi);
                newEntityManager.flush();

                monitor.sync();

                DbEntityManager cmdEntityManager = commandContext.DbEntityManager;

                cmdEntityManager.createHistoricProcessInstanceQuery().list();

                monitor.sync();

                return(null);
            }
Example #4
0
        protected internal virtual void insertHistoricDecisionInstance(HistoricDecisionInstanceEntity historicDecisionInstance)
        {
            DbEntityManager.insert(historicDecisionInstance);

            insertHistoricDecisionInputInstances(historicDecisionInstance.Inputs, historicDecisionInstance.Id);
            insertHistoricDecisionOutputInstances(historicDecisionInstance.Outputs, historicDecisionInstance.Id);
        }
Example #5
0
        public virtual IdentityOperationResult saveUser(User user)
        {
            UserEntity userEntity = (UserEntity)user;

            // encrypt password
            userEntity.encryptPassword();

            string operation = null;

            if (userEntity.Revision == 0)
            {
                operation = IdentityOperationResult.OPERATION_CREATE;
                checkAuthorization(Permissions.CREATE, Resources.USER, null);
                DbEntityManager.insert(userEntity);
                createDefaultAuthorizations(userEntity);
            }
            else
            {
                operation = IdentityOperationResult.OPERATION_UPDATE;
                checkAuthorization(Permissions.UPDATE, Resources.USER, user.Id);
                DbEntityManager.merge(userEntity);
            }

            return(new IdentityOperationResult(userEntity, operation));
        }
Example #6
0
        public virtual void insertJob(JobEntity job)
        {
            job.CreateTime = ClockUtil.CurrentTime;

            DbEntityManager.insert(job);
            HistoricJobLogManager.fireJobCreatedEvent(job);
        }
Example #7
0
            public Void execute(CommandContext commandContext)
            {
                DbEntityManagerFactory dbEntityManagerFactory = new DbEntityManagerFactory(Context.ProcessEngineConfiguration.IdGenerator);
                DbEntityManager        newEntityManager       = dbEntityManagerFactory.openSession();

                newEntityManager.insert(outerInstance.dummySchemaLogEntry);
                newEntityManager.flush();
                return(null);
            }
Example #8
0
        public virtual void setUserInfo(string userId, string userPassword, string type, string key, string value, string accountPassword, IDictionary <string, string> accountDetails)
        {
            sbyte[] storedPassword = null;
            if (!string.ReferenceEquals(accountPassword, null))
            {
                storedPassword = encryptPassword(accountPassword, userPassword);
            }

            IdentityInfoEntity identityInfoEntity = findUserInfoByUserIdAndKey(userId, key);

            if (identityInfoEntity != null)
            {
                // update
                identityInfoEntity.Value         = value;
                identityInfoEntity.PasswordBytes = storedPassword;

                if (accountDetails == null)
                {
                    accountDetails = new Dictionary <string, string>();
                }

                ISet <string> newKeys = new HashSet <string>(accountDetails.Keys);
                IList <IdentityInfoEntity> identityInfoDetails = findIdentityInfoDetails(identityInfoEntity.Id);
                foreach (IdentityInfoEntity identityInfoDetail in identityInfoDetails)
                {
                    string detailKey = identityInfoDetail.Key;
                    newKeys.remove(detailKey);
                    string newDetailValue = accountDetails[detailKey];
                    if (string.ReferenceEquals(newDetailValue, null))
                    {
                        deleteIdentityInfo(identityInfoDetail);
                    }
                    else
                    {
                        // update detail
                        identityInfoDetail.Value = newDetailValue;
                    }
                }
                insertAccountDetails(identityInfoEntity, accountDetails, newKeys);
            }
            else
            {
                // insert
                identityInfoEntity               = new IdentityInfoEntity();
                identityInfoEntity.UserId        = userId;
                identityInfoEntity.Type          = type;
                identityInfoEntity.Key           = key;
                identityInfoEntity.Value         = value;
                identityInfoEntity.PasswordBytes = storedPassword;
                DbEntityManager.insert(identityInfoEntity);
                if (accountDetails != null)
                {
                    insertAccountDetails(identityInfoEntity, accountDetails, accountDetails.Keys);
                }
            }
        }
Example #9
0
        protected internal virtual void insertHistoricDecisionInputInstances(IList <HistoricDecisionInputInstance> inputs, string decisionInstanceId)
        {
            foreach (HistoricDecisionInputInstance input in inputs)
            {
                HistoricDecisionInputInstanceEntity inputEntity = (HistoricDecisionInputInstanceEntity)input;
                inputEntity.DecisionInstanceId = decisionInstanceId;

                DbEntityManager.insert(inputEntity);
            }
        }
Example #10
0
        protected internal virtual void insertHistoricDecisionOutputInstances(IList <HistoricDecisionOutputInstance> outputs, string decisionInstanceId)
        {
            foreach (HistoricDecisionOutputInstance output in outputs)
            {
                HistoricDecisionOutputInstanceEntity outputEntity = (HistoricDecisionOutputInstanceEntity)output;
                outputEntity.DecisionInstanceId = decisionInstanceId;

                DbEntityManager.insert(outputEntity);
            }
        }
Example #11
0
 private void insertAccountDetails(IdentityInfoEntity identityInfoEntity, IDictionary <string, string> accountDetails, ISet <string> keys)
 {
     foreach (string newKey in keys)
     {
         // insert detail
         IdentityInfoEntity identityInfoDetail = new IdentityInfoEntity();
         identityInfoDetail.ParentId = identityInfoEntity.Id;
         identityInfoDetail.Key      = newKey;
         identityInfoDetail.Value    = accountDetails[newKey];
         DbEntityManager.insert(identityInfoDetail);
     }
 }
Example #12
0
        // membership //////////////////////////////////////////////////////

        public virtual IdentityOperationResult createMembership(string userId, string groupId)
        {
            checkAuthorization(Permissions.CREATE, Resources.GROUP_MEMBERSHIP, groupId);
            UserEntity       user       = findUserById(userId);
            GroupEntity      group      = findGroupById(groupId);
            MembershipEntity membership = new MembershipEntity();

            membership.User  = user;
            membership.Group = group;
            DbEntityManager.insert(membership);
            createDefaultMembershipAuthorizations(userId, groupId);
            return(new IdentityOperationResult(null, IdentityOperationResult.OPERATION_CREATE));
        }
Example #13
0
        public virtual void insertDeployment(DeploymentEntity deployment)
        {
            DbEntityManager.insert(deployment);
            createDefaultAuthorizations(deployment);

            foreach (ResourceEntity resource in deployment.Resources.Values)
            {
                resource.DeploymentId = deployment.Id;
                resource.Type         = ResourceTypes.REPOSITORY.Value;
                resource.CreateTime   = ClockUtil.CurrentTime;
                ResourceManager.insertResource(resource);
            }

            Context.ProcessEngineConfiguration.DeploymentCache.deploy(deployment);
        }
Example #14
0
        public virtual IdentityOperationResult createTenantGroupMembership(string tenantId, string groupId)
        {
            checkAuthorization(Permissions.CREATE, Resources.TENANT_MEMBERSHIP, tenantId);

            TenantEntity tenant = findTenantById(tenantId);
            GroupEntity  group  = findGroupById(groupId);

            ensureNotNull("No tenant found with id '" + tenantId + "'.", "tenant", tenant);
            ensureNotNull("No group found with id '" + groupId + "'.", "group", group);

            TenantMembershipEntity membership = new TenantMembershipEntity();

            membership.Tenant = tenant;
            membership.Group  = group;

            DbEntityManager.insert(membership);

            createDefaultTenantMembershipAuthorizations(tenant, group);
            return(new IdentityOperationResult(null, IdentityOperationResult.OPERATION_CREATE));
        }
Example #15
0
        public virtual IdentityOperationResult saveGroup(Group group)
        {
            GroupEntity groupEntity = (GroupEntity)group;
            string      operation   = null;

            if (groupEntity.Revision == 0)
            {
                operation = IdentityOperationResult.OPERATION_CREATE;
                checkAuthorization(Permissions.CREATE, Resources.GROUP, null);
                DbEntityManager.insert(groupEntity);
                createDefaultAuthorizations(group);
            }
            else
            {
                operation = IdentityOperationResult.OPERATION_UPDATE;
                checkAuthorization(Permissions.UPDATE, Resources.GROUP, group.Id);
                DbEntityManager.merge(groupEntity);
            }
            return(new IdentityOperationResult(groupEntity, operation));
        }
Example #16
0
        public virtual IdentityOperationResult saveTenant(Tenant tenant)
        {
            TenantEntity tenantEntity = (TenantEntity)tenant;
            string       operation    = null;

            if (tenantEntity.Revision == 0)
            {
                operation = IdentityOperationResult.OPERATION_CREATE;
                checkAuthorization(Permissions.CREATE, Resources.TENANT, null);
                DbEntityManager.insert(tenantEntity);
                createDefaultAuthorizations(tenant);
            }
            else
            {
                operation = IdentityOperationResult.OPERATION_UPDATE;
                checkAuthorization(Permissions.UPDATE, Resources.TENANT, tenant.Id);
                DbEntityManager.merge(tenantEntity);
            }
            return(new IdentityOperationResult(tenantEntity, operation));
        }
Example #17
0
        public virtual IdentityOperationResult createTenantUserMembership(string tenantId, string userId)
        {
            checkAuthorization(Permissions.CREATE, Resources.TENANT_MEMBERSHIP, tenantId);

            TenantEntity tenant = findTenantById(tenantId);
            UserEntity   user   = findUserById(userId);

            ensureNotNull("No tenant found with id '" + tenantId + "'.", "tenant", tenant);
            ensureNotNull("No user found with id '" + userId + "'.", "user", user);

            TenantMembershipEntity membership = new TenantMembershipEntity();

            membership.Tenant = tenant;
            membership.User   = user;

            DbEntityManager.insert(membership);

            createDefaultTenantMembershipAuthorizations(tenant, user);
            return(new IdentityOperationResult(null, IdentityOperationResult.OPERATION_CREATE));
        }
Example #18
0
        public virtual Filter insertOrUpdateFilter(Filter filter)
        {
//JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET:
//ORIGINAL LINE: org.camunda.bpm.engine.impl.AbstractQuery<?, ?> query = filter.getQuery();
            AbstractQuery <object, ?> query = filter.Query;

            query.validate(StoredQueryValidator.get());

            if (string.ReferenceEquals(filter.Id, null))
            {
                checkAuthorization(CREATE, FILTER, ANY);
                DbEntityManager.insert((FilterEntity)filter);
                createDefaultAuthorizations(filter);
            }
            else
            {
                checkAuthorization(UPDATE, FILTER, filter.Id);
                DbEntityManager.merge((FilterEntity)filter);
            }

            return(filter);
        }
Example #19
0
 public virtual void insertResource(ResourceEntity resource)
 {
     DbEntityManager.insert(resource);
 }
Example #20
0
 public virtual void insert(MeterLogEntity meterLogEntity)
 {
     DbEntityManager.insert(meterLogEntity);
 }
Example #21
0
 public virtual void insert(DbEntity dbEntity)
 {
     DbEntityManager.insert(dbEntity);
 }
Example #22
0
        public virtual Attachment execute(CommandContext commandContext)
        {
            if (!string.ReferenceEquals(taskId, null))
            {
                task = commandContext.TaskManager.findTaskById(taskId);
            }
            else
            {
                ensureNotNull("taskId or processInstanceId has to be provided", this.processInstanceId);
                IList <ExecutionEntity> executionsByProcessInstanceId = commandContext.ExecutionManager.findExecutionsByProcessInstanceId(processInstanceId);
                processInstance = executionsByProcessInstanceId[0];
            }

            AttachmentEntity attachment = new AttachmentEntity();

            attachment.Name              = attachmentName;
            attachment.Description       = attachmentDescription;
            attachment.Type              = attachmentType;
            attachment.TaskId            = taskId;
            attachment.ProcessInstanceId = processInstanceId;
            attachment.Url        = url;
            attachment.CreateTime = ClockUtil.CurrentTime;

            if (task != null)
            {
                ExecutionEntity execution = task.getExecution();
                if (execution != null)
                {
                    attachment.RootProcessInstanceId = execution.RootProcessInstanceId;
                }
            }
            else if (processInstance != null)
            {
                attachment.RootProcessInstanceId = processInstance.RootProcessInstanceId;
            }

            if (HistoryRemovalTimeStrategyStart)
            {
                provideRemovalTime(attachment);
            }

            DbEntityManager dbEntityManger = commandContext.DbEntityManager;

            dbEntityManger.insert(attachment);

            if (content != null)
            {
                sbyte[]         bytes     = IoUtil.readInputStream(content, attachmentName);
                ByteArrayEntity byteArray = new ByteArrayEntity(bytes, ResourceTypes.HISTORY);

                byteArray.RootProcessInstanceId = attachment.RootProcessInstanceId;
                byteArray.RemovalTime           = attachment.RemovalTime;

                commandContext.ByteArrayManager.insertByteArray(byteArray);
                attachment.ContentId = byteArray.Id;
            }

            PropertyChange propertyChange = new PropertyChange("name", null, attachmentName);

            if (task != null)
            {
                commandContext.OperationLogManager.logAttachmentOperation(org.camunda.bpm.engine.history.UserOperationLogEntry_Fields.OPERATION_TYPE_ADD_ATTACHMENT, task, propertyChange);
            }
            else if (processInstance != null)
            {
                commandContext.OperationLogManager.logAttachmentOperation(org.camunda.bpm.engine.history.UserOperationLogEntry_Fields.OPERATION_TYPE_ADD_ATTACHMENT, processInstance, propertyChange);
            }

            return(attachment);
        }
Example #23
0
        // insert ///////////////////////////////////////////////////////////

        public virtual void insertProcessDefinition(ProcessDefinitionEntity processDefinition)
        {
            DbEntityManager.insert(processDefinition);
            createDefaultAuthorizations(processDefinition);
        }
Example #24
0
 public virtual void insertByteArray(ByteArrayEntity arr)
 {
     arr.CreateTime = ClockUtil.CurrentTime;
     DbEntityManager.insert(arr);
 }
Example #25
0
 public virtual void insertCaseSentryPart(CaseSentryPartEntity caseSentryPart)
 {
     DbEntityManager.insert(caseSentryPart);
 }
Example #26
0
 public virtual void insert(ExternalTaskEntity externalTask)
 {
     DbEntityManager.insert(externalTask);
     fireExternalTaskAvailableEvent();
 }
Example #27
0
 public virtual void insertTask(TaskEntity task)
 {
     DbEntityManager.insert(task);
     createDefaultAuthorizations(task);
 }
Example #28
0
 public virtual void insertHistoricCaseActivityInstance(HistoricCaseActivityInstanceEntity historicCaseActivityInstance)
 {
     DbEntityManager.insert(historicCaseActivityInstance);
 }
Example #29
0
 public virtual void insertDecisionDefinition(DecisionDefinitionEntity decisionDefinition)
 {
     DbEntityManager.insert(decisionDefinition);
     createDefaultAuthorizations(decisionDefinition);
 }
Example #30
0
 public override void insert(DbEntity authorization)
 {
     checkAuthorization(CREATE, AUTHORIZATION, null);
     DbEntityManager.insert(authorization);
 }