@Override public List<UserOperationLogEntryDto> queryUserOperationEntries(UriInfo uriInfo, Integer firstResult, Integer maxResults) { UserOperationLogQueryDto queryDto = new UserOperationLogQueryDto(objectMapper, uriInfo.getQueryParameters()); UserOperationLogQuery query = queryDto.toQuery(processEngine); if (firstResult == null && maxResults == null) { return UserOperationLogEntryDto.map(query.list()); } else { if (firstResult == null) { firstResult = 0; } if (maxResults == null) { maxResults = Integer.MAX_VALUE; } return UserOperationLogEntryDto.map(query.listPage(firstResult, maxResults)); } } }
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 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()); } } }
@Override public List<UserOperationLogEntryDto> queryUserOperationEntries(UriInfo uriInfo, Integer firstResult, Integer maxResults) { UserOperationLogQueryDto queryDto = new UserOperationLogQueryDto(objectMapper, uriInfo.getQueryParameters()); UserOperationLogQuery query = queryDto.toQuery(processEngine); if (firstResult == null && maxResults == null) { return UserOperationLogEntryDto.map(query.list()); } else { if (firstResult == null) { firstResult = 0; } if (maxResults == null) { maxResults = Integer.MAX_VALUE; } return UserOperationLogEntryDto.map(query.listPage(firstResult, maxResults)); } } }
@After public void tearDown() throws Exception { identityService.clearAuthentication(); List<UserOperationLogEntry> logs = query().list(); for (UserOperationLogEntry log : logs) { historyService.deleteUserOperationLogEntry(log.getId()); } }
@Before public void setUpMock() { List<UserOperationLogEntry> entries = MockProvider.createUserOperationLogEntries(); queryMock = mock(UserOperationLogQuery.class); when(queryMock.list()).thenReturn(entries); when(queryMock.listPage(anyInt(), anyInt())).thenReturn(entries); when(queryMock.count()).thenReturn((long) entries.size()); when(processEngine.getHistoryService().createUserOperationLogQuery()).thenReturn(queryMock); }
protected void verifyQueryResults(UserOperationLogQuery query, int countExpected) { assertEquals(countExpected, query.list().size()); assertEquals(countExpected, query.count()); if (countExpected == 1) { assertNotNull(query.singleResult()); } else if (countExpected > 1){ verifySingleResultFails(query); } else if (countExpected == 0) { assertNull(query.singleResult()); } }
private void verifyQueryResults(UserOperationLogQuery query, int countExpected) { assertEquals(countExpected, query.list().size()); assertEquals(countExpected, query.count()); if (countExpected == 1) { assertNotNull(query.singleResult()); } else if (countExpected > 1){ verifySingleResultFails(query); } else if (countExpected == 0) { assertNull(query.singleResult()); } }
@Test @Deployment(resources={"org/camunda/bpm/engine/test/api/oneTaskProcess.bpmn20.xml"}) public void testWithoutAuthentication() { // given runtimeService.startProcessInstanceByKey(PROCESS_KEY); String taskId = taskService.createTaskQuery().singleResult().getId(); // when taskService.resolveTask(taskId, getVariables()); //then List<UserOperationLogEntry> userOperationLogEntries = historyService.createUserOperationLogQuery() .taskId(taskId) .list(); assertEquals(0, userOperationLogEntries.size()); List<HistoricDetail> historicDetails = historyService.createHistoricDetailQuery().list(); assertTrue(historicDetails.size() > 0); //history detail records must have null userOperationId as user operation log was not created for (HistoricDetail historicDetail: historicDetails) { assertNull(historicDetail.getUserOperationId()); } }
@Test @RequiredHistoryLevel(ProcessEngineConfiguration.HISTORY_FULL) public void testUserOperationLogQueryByBatchId() { // given Batch batch1 = helper.migrateProcessInstancesAsync(1); Batch batch2 = helper.migrateProcessInstancesAsync(1); // when identityService.setAuthenticatedUserId(USER_ID); managementService.suspendBatchById(batch1.getId()); managementService.suspendBatchById(batch2.getId()); managementService.activateBatchById(batch1.getId()); identityService.clearAuthentication(); // then UserOperationLogQuery query = historyService.createUserOperationLogQuery().batchId(batch1.getId()); assertEquals(2, query.count()); assertEquals(2, query.list().size()); query = historyService.createUserOperationLogQuery().batchId(batch2.getId()); assertEquals(1, query.count()); assertEquals(1, query.list().size()); }
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()); }
@RequiredHistoryLevel(ProcessEngineConfiguration.HISTORY_FULL) @Deployment(resources = { "org/camunda/bpm/engine/test/api/oneTaskProcess.bpmn20.xml"}) public void testProcessDefinitionUpdateTimeToLiveUserOperationLog() { //given ProcessDefinition processDefinition = findOnlyProcessDefinition(); Integer timeToLiveOrgValue = processDefinition.getHistoryTimeToLive(); processEngine.getIdentityService().setAuthenticatedUserId("userId"); //when Integer timeToLiveNewValue = 6; repositoryService.updateProcessDefinitionHistoryTimeToLive(processDefinition.getId(), timeToLiveNewValue); //then List<UserOperationLogEntry> opLogEntries = processEngine.getHistoryService().createUserOperationLogQuery().list(); Assert.assertEquals(1, opLogEntries.size()); final UserOperationLogEntryEventEntity userOperationLogEntry = (UserOperationLogEntryEventEntity)opLogEntries.get(0); assertEquals(UserOperationLogEntry.OPERATION_TYPE_UPDATE_HISTORY_TIME_TO_LIVE, userOperationLogEntry.getOperationType()); assertEquals(processDefinition.getKey(), userOperationLogEntry.getProcessDefinitionKey()); assertEquals(processDefinition.getId(), userOperationLogEntry.getProcessDefinitionId()); assertEquals("historyTimeToLive", userOperationLogEntry.getProperty()); assertEquals(timeToLiveOrgValue, Integer.valueOf(userOperationLogEntry.getOrgValue())); assertEquals(timeToLiveNewValue, Integer.valueOf(userOperationLogEntry.getNewValue())); }
@Test @Deployment(resources = { ONE_TASK_PROCESS }) public void testUserOperationLogDeletion() { // given process = runtimeService.startProcessInstanceByKey("oneTaskProcess"); runtimeService.setVariable(process.getId(), "testVariable1", "THIS IS TESTVARIABLE!!!"); // assume verifyVariableOperationAsserts(1, UserOperationLogEntry.OPERATION_TYPE_SET_VARIABLE); // when UserOperationLogEntry log = query().entityType(EntityTypes.VARIABLE).operationType(UserOperationLogEntry.OPERATION_TYPE_SET_VARIABLE).singleResult(); assertNotNull(log); historyService.deleteUserOperationLogEntry(log.getId()); // then List<UserOperationLogEntry> list = query().entityType(EntityTypes.VARIABLE).operationType(UserOperationLogEntry.OPERATION_TYPE_SET_VARIABLE).list(); assertEquals(0, list.size()); }
@Test @RequiredHistoryLevel(ProcessEngineConfiguration.HISTORY_FULL) public void testUserOperationLogQueryByBatchEntityType() { // given Batch batch1 = helper.migrateProcessInstancesAsync(1); Batch batch2 = helper.migrateProcessInstancesAsync(1); // when identityService.setAuthenticatedUserId(USER_ID); managementService.suspendBatchById(batch1.getId()); managementService.suspendBatchById(batch2.getId()); managementService.activateBatchById(batch1.getId()); identityService.clearAuthentication(); // then UserOperationLogQuery query = historyService.createUserOperationLogQuery().entityType(BATCH); assertEquals(3, query.count()); assertEquals(3, query.list().size()); }
@Test public void testLogCreationForOneExternalTaskId() { // given rule.getIdentityService().setAuthenticatedUserId("userId"); // when ExternalTask externalTask = externalTaskService.createExternalTaskQuery().processInstanceId(processInstanceIds.get(0)).singleResult(); externalTaskService.setRetries(externalTask.getId(), 5); rule.getIdentityService().clearAuthentication(); // then List<UserOperationLogEntry> opLogEntries = rule.getHistoryService().createUserOperationLogQuery().list(); Assert.assertEquals(1, opLogEntries.size()); Map<String, UserOperationLogEntry> entries = asMap(opLogEntries); UserOperationLogEntry retriesEntry = entries.get("retries"); Assert.assertNotNull(retriesEntry); Assert.assertEquals("ProcessInstance", retriesEntry.getEntityType()); Assert.assertEquals("SetExternalTaskRetries", retriesEntry.getOperationType()); Assert.assertEquals(externalTask.getProcessInstanceId(), retriesEntry.getProcessInstanceId()); Assert.assertEquals(externalTask.getProcessDefinitionId(), retriesEntry.getProcessDefinitionId()); Assert.assertEquals(externalTask.getProcessDefinitionKey(), retriesEntry.getProcessDefinitionKey()); Assert.assertNull(retriesEntry.getOrgValue()); Assert.assertEquals("5", retriesEntry.getNewValue()); }
@Test @Deployment(resources={"org/camunda/bpm/engine/test/api/oneTaskProcess.bpmn20.xml"}) public void testResolveTaskOperationId() { // given identityService.setAuthenticatedUserId("demo"); runtimeService.startProcessInstanceByKey(PROCESS_KEY); String taskId = taskService.createTaskQuery().singleResult().getId(); // when taskService.resolveTask(taskId, getVariables()); //then List<UserOperationLogEntry> userOperationLogEntries = historyService.createUserOperationLogQuery() .operationType(UserOperationLogEntry.OPERATION_TYPE_RESOLVE) .taskId(taskId) .list(); List<HistoricDetail> historicDetails = historyService.createHistoricDetailQuery().list(); verifySameOperationId(userOperationLogEntries, historicDetails); }
@Test @Deployment(resources={"org/camunda/bpm/engine/test/api/oneTaskProcess.bpmn20.xml"}) public void testSetTaskVariablesOperationId() { // given identityService.setAuthenticatedUserId("demo"); runtimeService.startProcessInstanceByKey(PROCESS_KEY); String taskId = taskService.createTaskQuery().singleResult().getId(); // when taskService.setVariables(taskId, getVariables()); //then List<UserOperationLogEntry> userOperationLogEntries = historyService.createUserOperationLogQuery() .operationType(UserOperationLogEntry.OPERATION_TYPE_SET_VARIABLE) .taskId(taskId) .list(); List<HistoricDetail> historicDetails = historyService.createHistoricDetailQuery().list(); verifySameOperationId(userOperationLogEntries, historicDetails); }
@Test @Deployment(resources={"org/camunda/bpm/engine/test/api/oneTaskProcess.bpmn20.xml"}) public void testSubmitTaskFormOperationId() { // given identityService.setAuthenticatedUserId("demo"); runtimeService.startProcessInstanceByKey(PROCESS_KEY); String taskId = taskService.createTaskQuery().singleResult().getId(); // when formService.submitTaskForm(taskId, getVariables()); //then List<UserOperationLogEntry> userOperationLogEntries = historyService.createUserOperationLogQuery() .operationType(UserOperationLogEntry.OPERATION_TYPE_COMPLETE) .taskId(taskId) .list(); List<HistoricDetail> historicDetails = historyService.createHistoricDetailQuery().list(); verifySameOperationId(userOperationLogEntries, historicDetails); }
protected 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()); } } else { UserOperationLogEntry logEntry = logQuery.singleResult(); assertEquals(process.getProcessDefinitionId(), logEntry.getProcessDefinitionId()); assertEquals(process.getProcessInstanceId(), logEntry.getProcessInstanceId()); } }
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()); } }