/** * Record the end of a start-task, if activity history is enabled. */ public void recordStartEventEnded(String executionId, String activityId) { if(isHistoryLevelAtLeast(HistoryLevel.ACTIVITY)) { // Interrupted executions might not have an activityId set, skip recording history. if(activityId == null) { return; } // Search for the historic activity instance in the dbsqlsession cache, since process hasn't been persisted to db yet List<HistoricActivityInstanceEntity> cachedHistoricActivityInstances = getDbSqlSession().findInCache(HistoricActivityInstanceEntity.class); for (HistoricActivityInstanceEntity cachedHistoricActivityInstance: cachedHistoricActivityInstances) { if ( executionId.equals(cachedHistoricActivityInstance.getExecutionId()) && (activityId.equals(cachedHistoricActivityInstance.getActivityId())) && (cachedHistoricActivityInstance.getEndTime()==null) ) { cachedHistoricActivityInstance.markEnded(null,null,null); return; } } } }
public void deleteHistoricIdentityLinksByProcInstance(String processInstanceId) { // Identity links from db List<HistoricIdentityLinkEntity> identityLinks = findHistoricIdentityLinksByProcessInstanceId(processInstanceId); // Delete for (HistoricIdentityLinkEntity identityLink : identityLinks) { deleteHistoricIdentityLink(identityLink); } // Identity links from cache List<HistoricIdentityLinkEntity> identityLinksFromCache = Context.getCommandContext().getDbSqlSession().findInCache(HistoricIdentityLinkEntity.class); for (HistoricIdentityLinkEntity identityLinkEntity : identityLinksFromCache) { if (processInstanceId.equals(identityLinkEntity.getProcessInstanceId())) { deleteHistoricIdentityLink(identityLinkEntity); } } }
public void deleteIdentityLinksByProcInstance(String processInstanceId) { // Identity links from db List<IdentityLinkEntity> identityLinks = findIdentityLinksByProcessInstanceId(processInstanceId); // Delete for (IdentityLinkEntity identityLink : identityLinks) { deleteIdentityLink(identityLink, false); } // Identity links from cache, if not already deleted List<IdentityLinkEntity> identityLinksFromCache = Context.getCommandContext().getDbSqlSession().findInCache(IdentityLinkEntity.class); boolean alreadyDeleted = false; for (IdentityLinkEntity identityLinkEntity : identityLinksFromCache) { if (processInstanceId.equals(identityLinkEntity.getProcessInstanceId())) { alreadyDeleted = false; for (IdentityLinkEntity deleted : identityLinks) { if (deleted.getId() != null && deleted.getId().equals(identityLinkEntity.getId())) { alreadyDeleted = true; break; } } if (!alreadyDeleted) { deleteIdentityLink(identityLinkEntity, false); } } } }
protected HistoricActivityInstanceEntity findActivityInstance(ExecutionEntity execution, String activityId, boolean checkPersistentStore) { String executionId = execution.getId(); // search for the historic activity instance in the dbsqlsession cache List<HistoricActivityInstanceEntity> cachedHistoricActivityInstances = getDbSqlSession() .findInCache(HistoricActivityInstanceEntity.class); for (HistoricActivityInstanceEntity cachedHistoricActivityInstance : cachedHistoricActivityInstances) { if (executionId.equals(cachedHistoricActivityInstance.getExecutionId()) && activityId != null && (activityId.equals(cachedHistoricActivityInstance.getActivityId())) && (cachedHistoricActivityInstance.getEndTime() == null)) { return cachedHistoricActivityInstance; } } List<HistoricActivityInstance> historicActivityInstances = null; if (checkPersistentStore) { historicActivityInstances = new HistoricActivityInstanceQueryImpl(Context.getCommandContext()) .executionId(executionId) .activityId(activityId) .unfinished() .listPage(0, 1); } if (historicActivityInstances != null && !historicActivityInstances.isEmpty()) { return (HistoricActivityInstanceEntity) historicActivityInstances.get(0); } if (execution.getParentId() != null) { return findActivityInstance(execution.getParent(), activityId, checkPersistentStore); } return null; }
List<HistoricActivityInstanceEntity> cachedHistoricActivityInstances = getDbSqlSession().findInCache(HistoricActivityInstanceEntity.class); for (HistoricActivityInstanceEntity cachedHistoricActivityInstance: cachedHistoricActivityInstances) { if (executionId.equals(cachedHistoricActivityInstance.getExecutionId())
@SuppressWarnings({ "unchecked", "rawtypes" }) public void deleteHistoricVariableInstanceByProcessInstanceId(String historicProcessInstanceId) { if (getHistoryManager().isHistoryLevelAtLeast(HistoryLevel.ACTIVITY)) { // Delete entries in DB List<HistoricVariableInstanceEntity> historicProcessVariables = (List) getDbSqlSession() .createHistoricVariableInstanceQuery() .processInstanceId(historicProcessInstanceId) .list(); for (HistoricVariableInstanceEntity historicProcessVariable : historicProcessVariables) { historicProcessVariable.delete(); } // Delete entries in Cache List<HistoricVariableInstanceEntity> cachedHistoricVariableInstances = getDbSqlSession().findInCache(HistoricVariableInstanceEntity.class); for (HistoricVariableInstanceEntity historicProcessVariable : cachedHistoricVariableInstances) { // Make sure we only delete the right ones (as we cannot make a proper query in the cache) if (historicProcessVariable.getProcessInstanceId().equals(historicProcessInstanceId)) { historicProcessVariable.delete(); } } } }
@SuppressWarnings({ "unchecked", "rawtypes" }) public void deleteHistoricVariableInstanceByProcessInstanceId(String historicProcessInstanceId) { if (getHistoryManager().isHistoryLevelAtLeast(HistoryLevel.ACTIVITY)) { // Delete entries in DB List<HistoricVariableInstanceEntity> historicProcessVariables = (List) getDbSqlSession() .createHistoricVariableInstanceQuery() .processInstanceId(historicProcessInstanceId) .excludeVariableInitialization() .list(); for (HistoricVariableInstanceEntity historicProcessVariable : historicProcessVariables) { historicProcessVariable.delete(); } // Delete entries in Cache List<HistoricVariableInstanceEntity> cachedHistoricVariableInstances = getDbSqlSession().findInCache(HistoricVariableInstanceEntity.class); for (HistoricVariableInstanceEntity historicProcessVariable : cachedHistoricVariableInstances) { // Make sure we only delete the right ones (as we cannot make a proper query in the cache) if (historicProcessInstanceId.equals(historicProcessVariable.getProcessInstanceId())) { historicProcessVariable.delete(); } } } }
.findInCache(HistoricActivityInstanceEntity.class); for (HistoricActivityInstanceEntity cachedHistoricActivityInstance : cachedHistoricActivityInstances) { if (processInstanceId.equals(cachedHistoricActivityInstance.getProcessInstanceId())
allTasks.addAll(getTasks()); List<TaskEntity> cachedTasks = dbSqlSession.findInCache(TaskEntity.class); for (TaskEntity cachedTask : cachedTasks) { if (cachedTask.getExecutionId().equals(this.getId())) { tasks = dbSqlSession.findInCache(TaskEntity.class); for (TaskEntity task : tasks) { if (id.equals(task.getExecutionId())) { variable.setExecutionId(replacedBy.getId()); variables = dbSqlSession.findInCache(VariableInstanceEntity.class); for (VariableInstanceEntity variable : variables) { if (id.equals(variable.getExecutionId())) {
@Override public void recordVariableUpdate(VariableInstanceEntity variable) { if (isHistoryLevelAtLeast(HistoryLevel.ACTIVITY)) { HistoricVariableInstanceEntity historicProcessVariable = getDbSqlSession() .findInCache(HistoricVariableInstanceEntity.class, variable.getId()); if (historicProcessVariable == null) { historicProcessVariable = Context.getCommandContext() .getHistoricVariableInstanceEntityManager() .findHistoricVariableInstanceByVariableInstanceId(variable.getId()); } if (historicProcessVariable != null) { historicProcessVariable.copyValue(variable); } else { HistoricVariableInstanceEntity.copyAndInsert(variable); } } }
@Override public void recordVariableRemoved(VariableInstanceEntity variable) { if (isHistoryLevelAtLeast(HistoryLevel.ACTIVITY)) { HistoricVariableInstanceEntity historicProcessVariable = getDbSqlSession() .findInCache(HistoricVariableInstanceEntity.class, variable.getId()); if (historicProcessVariable == null) { historicProcessVariable = Context.getCommandContext() .getHistoricVariableInstanceEntityManager() .findHistoricVariableInstanceByVariableInstanceId(variable.getId()); } if (historicProcessVariable != null) { Context.getCommandContext() .getHistoricVariableInstanceEntityManager() .delete(historicProcessVariable); } } }
.findInCache(MessageEventSubscriptionEntity.class); for (MessageEventSubscriptionEntity cachedSubscription : cachedSubscriptions) { if(messageEventDefinition.getEventName().equals(cachedSubscription.getEventName())
@Override @SuppressWarnings({ "unchecked", "rawtypes" }) public void recordExecutionReplacedBy(ExecutionEntity execution, InterpretableExecution replacedBy) { if (isHistoryLevelAtLeast(HistoryLevel.ACTIVITY)) { // Update the cached historic activity instances that are open List<HistoricActivityInstanceEntity> cachedHistoricActivityInstances = getDbSqlSession().findInCache(HistoricActivityInstanceEntity.class); for (HistoricActivityInstanceEntity cachedHistoricActivityInstance : cachedHistoricActivityInstances) { if ((cachedHistoricActivityInstance.getEndTime() == null) && (execution.getId().equals(cachedHistoricActivityInstance.getExecutionId()))) { cachedHistoricActivityInstance.setExecutionId(replacedBy.getId()); } } // Update the persisted historic activity instances that are open List<HistoricActivityInstanceEntity> historicActivityInstances = (List) new HistoricActivityInstanceQueryImpl(Context.getCommandContext()) .executionId(execution.getId()) .unfinished() .list(); for (HistoricActivityInstanceEntity historicActivityInstance : historicActivityInstances) { historicActivityInstance.setExecutionId(replacedBy.getId()); } } }
/** * Record a variable has been updated, if audit history is enabled. */ public void recordVariableUpdate(VariableInstanceEntity variable) { if(isHistoryLevelAtLeast(HistoryLevel.ACTIVITY)) { HistoricVariableInstanceEntity historicProcessVariable = getDbSqlSession().findInCache(HistoricVariableInstanceEntity.class, variable.getId()); if (historicProcessVariable==null) { historicProcessVariable = Context .getCommandContext() .getHistoricVariableInstanceEntityManager() .findHistoricVariableInstanceByVariableInstanceId(variable.getId()); } if (historicProcessVariable!=null) { historicProcessVariable.copyValue(variable); } else { historicProcessVariable = new HistoricVariableInstanceEntity(variable); getDbSqlSession().insert(historicProcessVariable); } } }
tasks = dbSqlSession.findInCache(TaskEntity.class); for (TaskEntity task: tasks) { if (id.equals(task.getExecutionId())) { variable.setExecutionId(replacedBy.getId()); variables = dbSqlSession.findInCache(VariableInstanceEntity.class); for (VariableInstanceEntity variable: variables) { if (id.equals(variable.getExecutionId())) {
/** * Replaces any open historic activityInstances' execution-id's to the id of the replaced * execution, if activity history is enabled. */ @SuppressWarnings({ "unchecked", "rawtypes" }) public void recordExecutionReplacedBy(ExecutionEntity execution, InterpretableExecution replacedBy) { if (isHistoryLevelAtLeast(HistoryLevel.ACTIVITY)) { // Update the cached historic activity instances that are open List<HistoricActivityInstanceEntity> cachedHistoricActivityInstances = getDbSqlSession().findInCache(HistoricActivityInstanceEntity.class); for (HistoricActivityInstanceEntity cachedHistoricActivityInstance: cachedHistoricActivityInstances) { if ( (cachedHistoricActivityInstance.getEndTime()==null) && (execution.getId().equals(cachedHistoricActivityInstance.getExecutionId())) ) { cachedHistoricActivityInstance.setExecutionId(replacedBy.getId()); } } // Update the persisted historic activity instances that are open List<HistoricActivityInstanceEntity> historicActivityInstances = (List) new HistoricActivityInstanceQueryImpl(Context.getCommandContext()) .executionId(execution.getId()) .unfinished() .list(); for (HistoricActivityInstanceEntity historicActivityInstance: historicActivityInstances) { historicActivityInstance.setExecutionId(replacedBy.getId()); } } } /**
.findInCache(MessageEventSubscriptionEntity.class); for (MessageEventSubscriptionEntity cachedSubscription : cachedSubscriptions) { if (eventDefinition.getEventName().equals(cachedSubscription.getEventName())