public static UserOperationLogEntryDto map(UserOperationLogEntry entry) { UserOperationLogEntryDto dto = new UserOperationLogEntryDto(); dto.id = entry.getId(); dto.deploymentId = entry.getDeploymentId(); dto.processDefinitionId = entry.getProcessDefinitionId(); dto.processDefinitionKey = entry.getProcessDefinitionKey(); dto.processInstanceId = entry.getProcessInstanceId(); dto.executionId = entry.getExecutionId(); dto.caseDefinitionId = entry.getCaseDefinitionId(); dto.caseInstanceId = entry.getCaseInstanceId(); dto.caseExecutionId = entry.getCaseExecutionId(); dto.taskId = entry.getTaskId(); dto.jobId = entry.getJobId(); dto.jobDefinitionId = entry.getJobDefinitionId(); dto.batchId = entry.getBatchId(); dto.userId = entry.getUserId(); dto.timestamp = entry.getTimestamp(); dto.operationId = entry.getOperationId(); dto.operationType = entry.getOperationType(); dto.entityType = entry.getEntityType(); dto.property = entry.getProperty(); dto.orgValue = entry.getOrgValue(); dto.newValue = entry.getNewValue(); dto.removalTime = entry.getRemovalTime(); dto.rootProcessInstanceId = entry.getRootProcessInstanceId(); return dto; }
private void assertThatTasksHaveAllImportantInformation(UserOperationLogEntry userOperationLogEntry) { assertThat(userOperationLogEntry, notNullValue()); assertThat(userOperationLogEntry.getId(), notNullValue()); assertThat(userOperationLogEntry.getOperationType(), is(OPERATION_TYPE_CLAIM)); assertThat(userOperationLogEntry.getOrgValue(), nullValue()); assertThat(userOperationLogEntry.getNewValue(), is(userId)); assertThat(userOperationLogEntry.getTimestamp(), notNullValue()); assertThat(userOperationLogEntry.getProcessDefinitionKey(), is("process")); assertThat(userOperationLogEntry.getProcessDefinitionId(), notNullValue()); assertThat(userOperationLogEntry.getUserId(), is(userId)); assertThat(userOperationLogEntry.getTaskId(), is(taskService.createTaskQuery().singleResult().getId())); }
public void testCreateDeployment() { // when Deployment deployment = repositoryService .createDeployment() .name(DEPLOYMENT_NAME) .addModelInstance(RESOURCE_NAME, createProcessWithServiceTask(PROCESS_KEY)) .deploy(); // then UserOperationLogEntry userOperationLogEntry = historyService.createUserOperationLogQuery().singleResult(); assertNotNull(userOperationLogEntry); assertEquals(EntityTypes.DEPLOYMENT, userOperationLogEntry.getEntityType()); assertEquals(deployment.getId(), userOperationLogEntry.getDeploymentId()); assertEquals(UserOperationLogEntry.OPERATION_TYPE_CREATE, userOperationLogEntry.getOperationType()); assertEquals("duplicateFilterEnabled", userOperationLogEntry.getProperty()); assertNull(userOperationLogEntry.getOrgValue()); assertFalse(Boolean.valueOf(userOperationLogEntry.getNewValue())); assertEquals(USER_ID, userOperationLogEntry.getUserId()); assertNull(userOperationLogEntry.getJobDefinitionId()); assertNull(userOperationLogEntry.getProcessInstanceId()); assertNull(userOperationLogEntry.getProcessDefinitionId()); assertNull(userOperationLogEntry.getProcessDefinitionKey()); assertNull(userOperationLogEntry.getCaseInstanceId()); assertNull(userOperationLogEntry.getCaseDefinitionId()); }
assertEquals(EntityTypes.DECISION_INSTANCE, typeEntry.getEntityType()); assertEquals(UserOperationLogEntry.OPERATION_TYPE_DELETE, typeEntry.getOperationType()); assertNull(typeEntry.getProcessDefinitionId()); assertNull(typeEntry.getProcessDefinitionKey()); assertNull(typeEntry.getProcessInstanceId()); assertNull(typeEntry.getOrgValue()); assertEquals("history", typeEntry.getNewValue()); assertEquals(EntityTypes.DECISION_INSTANCE, typeEntry.getEntityType()); assertEquals(UserOperationLogEntry.OPERATION_TYPE_DELETE, typeEntry.getOperationType()); assertNull(typeEntry.getProcessDefinitionId()); assertNull(typeEntry.getProcessDefinitionKey()); assertNull(typeEntry.getProcessInstanceId()); assertNull(typeEntry.getOrgValue()); assertEquals("true", asyncEntry.getNewValue()); assertEquals(EntityTypes.DECISION_INSTANCE, typeEntry.getEntityType()); assertEquals(UserOperationLogEntry.OPERATION_TYPE_DELETE, typeEntry.getOperationType()); assertNull(typeEntry.getProcessDefinitionId()); assertNull(typeEntry.getProcessDefinitionKey()); assertNull(typeEntry.getProcessInstanceId()); assertNull(typeEntry.getOrgValue()); assertEquals("10", numInstancesEntry.getNewValue()); assertEquals(EntityTypes.DECISION_INSTANCE, typeEntry.getEntityType()); assertEquals(UserOperationLogEntry.OPERATION_TYPE_DELETE, typeEntry.getOperationType()); assertNull(typeEntry.getProcessDefinitionId()); assertNull(typeEntry.getProcessDefinitionKey()); assertNull(typeEntry.getProcessInstanceId());
@Deployment(resources = {"org/camunda/bpm/engine/test/history/asyncTaskProcess.bpmn20.xml"}) public void testSetOverridingPriority() { // given a job definition JobDefinition jobDefinition = managementService.createJobDefinitionQuery().singleResult(); // when I set a job priority managementService.setOverridingJobPriorityForJobDefinition(jobDefinition.getId(), 42); // then an op log entry is written UserOperationLogEntry userOperationLogEntry = historyService.createUserOperationLogQuery().singleResult(); assertNotNull(userOperationLogEntry); assertEquals(EntityTypes.JOB_DEFINITION, userOperationLogEntry.getEntityType()); assertEquals(jobDefinition.getId(), userOperationLogEntry.getJobDefinitionId()); assertEquals(UserOperationLogEntry.OPERATION_TYPE_SET_PRIORITY, userOperationLogEntry.getOperationType()); assertEquals("overridingPriority", userOperationLogEntry.getProperty()); assertEquals("42", userOperationLogEntry.getNewValue()); assertEquals(null, userOperationLogEntry.getOrgValue()); assertEquals(USER_ID, userOperationLogEntry.getUserId()); assertEquals(jobDefinition.getProcessDefinitionId(), userOperationLogEntry.getProcessDefinitionId()); assertEquals(jobDefinition.getProcessDefinitionKey(), userOperationLogEntry.getProcessDefinitionKey()); assertEquals(deploymentId, userOperationLogEntry.getDeploymentId()); }
assertNull(suspendEntry.getProcessInstanceId()); assertNull(suspendEntry.getProcessDefinitionId()); assertEquals("oneTaskProcess", suspendEntry.getProcessDefinitionKey()); assertNull(suspendEntry.getDeploymentId()); assertEquals("suspensionState", suspendEntry.getProperty()); assertEquals("suspended", suspendEntry.getNewValue()); assertNull(suspendEntry.getOrgValue()); assertNull(activateEntry.getProcessInstanceId()); assertNull(activateEntry.getProcessDefinitionId()); assertEquals("oneTaskProcess", activateEntry.getProcessDefinitionKey()); assertNull(activateEntry.getDeploymentId()); assertEquals("suspensionState", activateEntry.getProperty()); assertEquals("active", activateEntry.getNewValue()); assertNull(activateEntry.getOrgValue());
@Deployment(resources = { "org/camunda/bpm/engine/test/bpmn/async/FoxJobRetryCmdTest.testFailedServiceTask.bpmn20.xml" }) public void testQueryJobRetryOperationsById() { // given process = runtimeService.startProcessInstanceByKey("failedServiceTask"); Job job = managementService.createJobQuery().processInstanceId(process.getProcessInstanceId()).singleResult(); managementService.setJobRetries(job.getId(), 10); // then assertEquals(1, query().entityType(JOB).operationType(OPERATION_TYPE_SET_JOB_RETRIES).count()); UserOperationLogEntry jobRetryEntry = query() .entityType(JOB) .jobId(job.getId()) .operationType(OPERATION_TYPE_SET_JOB_RETRIES) .singleResult(); assertNotNull(jobRetryEntry); assertEquals(job.getId(), jobRetryEntry.getJobId()); assertEquals("3", jobRetryEntry.getOrgValue()); assertEquals("10", jobRetryEntry.getNewValue()); assertEquals("retries", jobRetryEntry.getProperty()); assertEquals(job.getJobDefinitionId(), jobRetryEntry.getJobDefinitionId()); assertEquals(job.getProcessInstanceId(), jobRetryEntry.getProcessInstanceId()); assertEquals(job.getProcessDefinitionKey(), jobRetryEntry.getProcessDefinitionKey()); assertEquals(job.getProcessDefinitionId(), jobRetryEntry.getProcessDefinitionId()); assertEquals(deploymentId, jobRetryEntry.getDeploymentId()); }
assertEquals(EntityTypes.DEPLOYMENT, logDuplicateFilterEnabledProperty.getEntityType()); assertEquals(deployment.getId(), logDuplicateFilterEnabledProperty.getDeploymentId()); assertEquals(UserOperationLogEntry.OPERATION_TYPE_CREATE, logDuplicateFilterEnabledProperty.getOperationType()); assertEquals(USER_ID, logDuplicateFilterEnabledProperty.getUserId()); assertEquals("duplicateFilterEnabled", logDuplicateFilterEnabledProperty.getProperty()); assertNull(logDuplicateFilterEnabledProperty.getOrgValue()); assertTrue(Boolean.valueOf(logDuplicateFilterEnabledProperty.getNewValue())); assertNotNull(logDeployChangedOnlyProperty); assertEquals(EntityTypes.DEPLOYMENT, logDeployChangedOnlyProperty.getEntityType()); assertEquals(deployment.getId(), logDeployChangedOnlyProperty.getDeploymentId()); assertEquals(UserOperationLogEntry.OPERATION_TYPE_CREATE, logDeployChangedOnlyProperty.getOperationType()); assertEquals(USER_ID, logDeployChangedOnlyProperty.getUserId()); assertEquals("deployChangedOnly", logDeployChangedOnlyProperty.getProperty()); assertNull(logDeployChangedOnlyProperty.getOrgValue()); assertTrue(Boolean.valueOf(logDeployChangedOnlyProperty.getNewValue())); assertEquals(logDuplicateFilterEnabledProperty.getOperationId(), logDeployChangedOnlyProperty.getOperationId());
assertNotNull(entry); assertEquals(caseDefinitionId, entry.getCaseDefinitionId()); assertEquals(caseInstanceId, entry.getCaseInstanceId()); assertEquals(humanTaskId, entry.getCaseExecutionId()); assertEquals(deploymentId, entry.getDeploymentId()); assertFalse(Boolean.valueOf(entry.getOrgValue())); assertTrue(Boolean.valueOf(entry.getNewValue())); assertEquals(DELETE, entry.getProperty());
@Deployment(resources = {"org/camunda/bpm/engine/test/history/asyncTaskProcess.bpmn20.xml"}) public void testOverwriteOverridingPriority() { // given a job definition JobDefinition jobDefinition = managementService.createJobDefinitionQuery().singleResult(); // with an overriding priority ClockUtil.setCurrentTime(new Date(System.currentTimeMillis())); managementService.setOverridingJobPriorityForJobDefinition(jobDefinition.getId(), 42); // when I overwrite that priority ClockUtil.setCurrentTime(new Date(System.currentTimeMillis() + 10000)); managementService.setOverridingJobPriorityForJobDefinition(jobDefinition.getId(), 43); // then this is accessible via the op log UserOperationLogEntry userOperationLogEntry = historyService.createUserOperationLogQuery() .orderByTimestamp().desc().listPage(0, 1).get(0); assertNotNull(userOperationLogEntry); assertEquals(EntityTypes.JOB_DEFINITION, userOperationLogEntry.getEntityType()); assertEquals(jobDefinition.getId(), userOperationLogEntry.getJobDefinitionId()); assertEquals(UserOperationLogEntry.OPERATION_TYPE_SET_PRIORITY, userOperationLogEntry.getOperationType()); assertEquals("overridingPriority", userOperationLogEntry.getProperty()); assertEquals("43", userOperationLogEntry.getNewValue()); assertEquals("42", userOperationLogEntry.getOrgValue()); }
@Test @RequiredHistoryLevel(ProcessEngineConfiguration.HISTORY_FULL) public void shouldCreateUserOperationLogForBatchSuspension() { // given Batch batch = helper.migrateProcessInstancesAsync(1); // when identityService.setAuthenticatedUserId(USER_ID); managementService.suspendBatchById(batch.getId()); identityService.clearAuthentication(); // then UserOperationLogEntry entry = historyService.createUserOperationLogQuery() .singleResult(); assertNotNull(entry); assertEquals(batch.getId(), entry.getBatchId()); assertEquals(AbstractSetBatchStateCmd.SUSPENSION_STATE_PROPERTY, entry.getProperty()); assertNull(entry.getOrgValue()); assertEquals(SuspensionState.SUSPENDED.getName(), entry.getNewValue()); }
@Deployment public void testOnlyTaskCompletionIsLogged() { // given String processInstanceId = runtimeService.startProcessInstanceByKey("process").getId(); String taskId = taskService.createTaskQuery().singleResult().getId(); // when taskService.complete(taskId); // then assertTrue((Boolean) runtimeService.getVariable(processInstanceId, "taskListenerCalled")); assertTrue((Boolean) runtimeService.getVariable(processInstanceId, "serviceTaskCalled")); UserOperationLogQuery query = historyService.createUserOperationLogQuery(); assertEquals(1, query.count()); UserOperationLogEntry log = query.singleResult(); assertEquals("process", log.getProcessDefinitionKey()); assertEquals(processInstanceId, log.getProcessInstanceId()); assertEquals(deploymentId, log.getDeploymentId()); assertEquals(taskId, log.getTaskId()); assertEquals(UserOperationLogEntry.OPERATION_TYPE_COMPLETE, log.getOperationType()); }
public void testCompositeBeanInteraction() { // given: a manually created task task = taskService.newTask(); // then: save the task without any property change taskService.saveTask(task); // expect: no entry UserOperationLogQuery query = queryOperationDetails(OPERATION_TYPE_CREATE); UserOperationLogEntry create = query.singleResult(); assertNotNull(create); assertEquals(ENTITY_TYPE_TASK, create.getEntityType()); assertNull(create.getOrgValue()); assertNull(create.getNewValue()); assertNull(create.getProperty()); task.setAssignee("icke"); task.setName("to do"); // then: save the task again taskService.saveTask(task); // expect: two update entries with the same operation id List<UserOperationLogEntry> entries = queryOperationDetails(OPERATION_TYPE_UPDATE).list(); assertEquals(2, entries.size()); assertEquals(entries.get(0).getOperationId(), entries.get(1).getOperationId()); }
public static void clearUserOperationLog(ProcessEngineConfigurationImpl processEngineConfiguration) { if (processEngineConfiguration.getHistoryLevel().equals(HistoryLevel.HISTORY_LEVEL_FULL)) { HistoryService historyService = processEngineConfiguration.getHistoryService(); List<UserOperationLogEntry> logs = historyService.createUserOperationLogQuery().list(); for (UserOperationLogEntry log : logs) { historyService.deleteUserOperationLogEntry(log.getId()); } } }
public void testCaseInstanceId() { // create new task task = taskService.newTask(); taskService.saveTask(task); UserOperationLogQuery query = queryOperationDetails(OPERATION_TYPE_UPDATE); assertEquals(0, query.count()); // set case instance id and save task task.setCaseInstanceId("aCaseInstanceId"); taskService.saveTask(task); assertEquals(1, query.count()); UserOperationLogEntry entry = query.singleResult(); assertNotNull(entry); assertNull(entry.getOrgValue()); assertEquals("aCaseInstanceId", entry.getNewValue()); assertEquals(CASE_INSTANCE_ID, entry.getProperty()); // change case instance id and save task task.setCaseInstanceId("anotherCaseInstanceId"); taskService.saveTask(task); assertEquals(2, query.count()); List<UserOperationLogEntry> entries = query.list(); assertEquals(2, entries.size()); for (UserOperationLogEntry currentEntry : entries) { if (!currentEntry.getId().equals(entry.getId())) { assertEquals("aCaseInstanceId", currentEntry.getOrgValue()); assertEquals("anotherCaseInstanceId", currentEntry.getNewValue()); assertEquals(CASE_INSTANCE_ID, currentEntry.getProperty()); } } }
private void verifyVariableOperationAsserts(int countAssertValue, String operationType) { UserOperationLogQuery logQuery = query().entityType(EntityTypes.VARIABLE).operationType(operationType); assertEquals(countAssertValue, logQuery.count()); if(countAssertValue > 1) { List<UserOperationLogEntry> logEntryList = logQuery.list(); for (UserOperationLogEntry logEntry : logEntryList) { assertEquals(process.getProcessDefinitionId(), logEntry.getProcessDefinitionId()); assertEquals(process.getProcessInstanceId(), logEntry.getProcessInstanceId()); assertEquals(deploymentId, logEntry.getDeploymentId()); } } else { UserOperationLogEntry logEntry = logQuery.singleResult(); assertEquals(process.getProcessDefinitionId(), logEntry.getProcessDefinitionId()); assertEquals(process.getProcessInstanceId(), logEntry.getProcessInstanceId()); assertEquals(deploymentId, logEntry.getDeploymentId()); } }
@Override public void checkDeleteUserOperationLog(UserOperationLogEntry entry) { if (entry != null) { String processDefinitionKey = entry.getProcessDefinitionKey(); if (processDefinitionKey != null) { getAuthorizationManager().checkAuthorization(DELETE_HISTORY, PROCESS_DEFINITION, processDefinitionKey); } } }
public void testCreateDeploymentPa() { // given EmbeddedProcessApplication application = new EmbeddedProcessApplication(); // when Deployment deployment = repositoryService .createDeployment(application.getReference()) .name(DEPLOYMENT_NAME) .addModelInstance(RESOURCE_NAME, createProcessWithServiceTask(PROCESS_KEY)) .deploy(); // then UserOperationLogEntry userOperationLogEntry = historyService.createUserOperationLogQuery().singleResult(); assertNotNull(userOperationLogEntry); assertEquals(EntityTypes.DEPLOYMENT, userOperationLogEntry.getEntityType()); assertEquals(deployment.getId(), userOperationLogEntry.getDeploymentId()); assertEquals(UserOperationLogEntry.OPERATION_TYPE_CREATE, userOperationLogEntry.getOperationType()); assertEquals("duplicateFilterEnabled", userOperationLogEntry.getProperty()); assertNull(userOperationLogEntry.getOrgValue()); assertFalse(Boolean.valueOf(userOperationLogEntry.getNewValue())); assertEquals(USER_ID, userOperationLogEntry.getUserId()); assertNull(userOperationLogEntry.getJobDefinitionId()); assertNull(userOperationLogEntry.getProcessInstanceId()); assertNull(userOperationLogEntry.getProcessDefinitionId()); assertNull(userOperationLogEntry.getProcessDefinitionKey()); assertNull(userOperationLogEntry.getCaseInstanceId()); assertNull(userOperationLogEntry.getCaseDefinitionId()); }
assertEquals(EntityTypes.DECISION_INSTANCE, typeEntry.getEntityType()); assertEquals(UserOperationLogEntry.OPERATION_TYPE_DELETE, typeEntry.getOperationType()); assertNull(typeEntry.getProcessDefinitionId()); assertNull(typeEntry.getProcessDefinitionKey()); assertNull(typeEntry.getProcessInstanceId()); assertNull(typeEntry.getOrgValue()); assertEquals("history", typeEntry.getNewValue()); assertEquals(EntityTypes.DECISION_INSTANCE, typeEntry.getEntityType()); assertEquals(UserOperationLogEntry.OPERATION_TYPE_DELETE, typeEntry.getOperationType()); assertNull(typeEntry.getProcessDefinitionId()); assertNull(typeEntry.getProcessDefinitionKey()); assertNull(typeEntry.getProcessInstanceId()); assertNull(typeEntry.getOrgValue()); assertEquals("true", asyncEntry.getNewValue()); assertEquals(EntityTypes.DECISION_INSTANCE, typeEntry.getEntityType()); assertEquals(UserOperationLogEntry.OPERATION_TYPE_DELETE, typeEntry.getOperationType()); assertNull(typeEntry.getProcessDefinitionId()); assertNull(typeEntry.getProcessDefinitionKey()); assertNull(typeEntry.getProcessInstanceId()); assertNull(typeEntry.getOrgValue()); assertEquals("10", numInstancesEntry.getNewValue()); assertEquals(EntityTypes.DECISION_INSTANCE, typeEntry.getEntityType()); assertEquals(UserOperationLogEntry.OPERATION_TYPE_DELETE, typeEntry.getOperationType()); assertNull(typeEntry.getProcessDefinitionId()); assertNull(typeEntry.getProcessDefinitionKey()); assertNull(typeEntry.getProcessInstanceId());
assertNotNull(userOperationLogEntry); assertEquals(EntityTypes.JOB, userOperationLogEntry.getEntityType()); assertEquals(job.getId(), userOperationLogEntry.getJobId()); userOperationLogEntry.getOperationType()); assertEquals("priority", userOperationLogEntry.getProperty()); assertEquals("42", userOperationLogEntry.getNewValue()); assertEquals("0", userOperationLogEntry.getOrgValue()); assertEquals(USER_ID, userOperationLogEntry.getUserId()); assertEquals(job.getJobDefinitionId(), userOperationLogEntry.getJobDefinitionId()); assertEquals(job.getProcessInstanceId(), userOperationLogEntry.getProcessInstanceId()); assertEquals(job.getProcessDefinitionId(), userOperationLogEntry.getProcessDefinitionId()); assertEquals(job.getProcessDefinitionKey(), userOperationLogEntry.getProcessDefinitionKey()); assertEquals(deploymentId, userOperationLogEntry.getDeploymentId());