Refine search
VariableInstanceLog vil = new VariableInstanceLog(); vil.setProcessInstanceId(randomLong()); vil.setProcessId(randomString()); cal.add(Calendar.MINUTE, 1); vil.setDate(cal.getTime()); vil.setVariableInstanceId(randomString()); vil.setVariableId(randomString()); vil.setValue(randomString()); vil.setOldValue(randomString()); vil.setExternalId(randomString()); switch(i) { case 1: testData[i-1].setDate(testData[i].getDate()); break; case 2: testData[i-1].setOldValue(testData[i].getOldValue()); break; case 3: testData[i-1].setProcessId(testData[i].getProcessId()); break; case 4: testData[i-1].setProcessInstanceId(testData[i].getProcessInstanceId()); break; case 5: testData[i-1].setValue(testData[i].getValue()); break; case 6: testData[i-1].setVariableId(testData[i].getVariableId());
varLogs = varLogs.stream().sorted((o1, o2) -> Long.compare(o1.getId(), o2.getId())).collect(Collectors.toList()); Assertions.assertThat(varLogs).isNotEmpty(); Assertions.assertThat(varLogs.size()).isEqualTo(2); Map<String, Object> results = new HashMap<String, Object>(); results.put("Result", "ResultValue"); session.getWorkItemManager().completeWorkItem(workItemId, results); Assertions.assertThat(variableInstances.size()).isEqualTo(12); for (VariableInstanceLog variableInstance: variableInstances) { logger.debug(variableInstance.toString()); Assertions.assertThat(processInstance.getProcessInstanceId().longValue()).isEqualTo(processInstanceId); Assertions.assertThat(processInstance.getProcessId()).isEqualTo("com.sample.ruleflow3"); Assertions.assertThat(variableInstance.getDate()).isNotNull(); Assertions.assertThat(emptyVarLogs).isEmpty(); for( VariableInstanceLog origVarLog : variableInstances ) { varLogs = auditLogService.findVariableInstancesByName(origVarLog.getVariableId(), false) ; for( VariableInstanceLog varLog : varLogs ) { Assertions.assertThat(varLog.getVariableId()).isEqualTo(origVarLog.getVariableId()); Assertions.assertThat(variableInstances.size()).isEqualTo(3); VariableInstanceLog varLog = variableInstances.get(0); Assertions.assertThat(varLog.getVariableId()).isEqualTo(varId); Assertions.assertThat(varLog.getValue()).isEqualTo(varValue);
public VariableInstanceLog(long processInstanceId, String processId, String variableInstanceId, String variableId, String value, String oldValue) { this.processInstanceId = processInstanceId; this.processId = processId; this.variableInstanceId = variableInstanceId; this.variableId = variableId; setValue(value); setOldValue(oldValue); this.date = new Date(); }
@Override public List<VariableInstanceLog> index(String name, Object variable) { List<VariableInstanceLog> indexed = new ArrayList<VariableInstanceLog>(); org.jbpm.process.audit.VariableInstanceLog processVariable = new org.jbpm.process.audit.VariableInstanceLog(); processVariable.setVariableId(name); processVariable.setValue(variable == null ? "" : variable.toString()); indexed.add(processVariable); return indexed; }
@Override public AuditEvent buildEvent(ProcessVariableChangedEvent pvce) { long processInstanceId = pvce.getProcessInstance().getId(); String processId = pvce.getProcessInstance().getProcessId(); String variableId = pvce.getVariableId(); String variableInstanceId = pvce.getVariableInstanceId(); String oldValue = (pvce.getOldValue() != null)?pvce.getOldValue().toString():""; String newValue = (pvce.getNewValue() != null)?pvce.getNewValue().toString():""; VariableInstanceLog log = new VariableInstanceLog( processInstanceId, processId, variableInstanceId, variableId, newValue, oldValue); log.setExternalId(""+((KieSession) pvce.getKieRuntime()).getIdentifier()); return log; }
ProcessInstance processInstance = session.startProcess("com.sample.ruleflow3", params); List<VariableInstanceLog> variables = logService.findVariableInstances(processInstance.getId()); Assertions.assertThat(variables).isNotNull(); Assertions.assertThat(variables).hasSize(2); Assertions.assertThat(var.getValue()).isEqualTo("InitialValue"); Assertions.assertThat(var.getOldValue()).isIn("", " ", null); Assertions.assertThat(var.getProcessInstanceId().longValue()).isEqualTo(processInstance.getId()); Assertions.assertThat(var.getProcessId()).isEqualTo(processInstance.getProcessId()); Assertions.assertThat(var.getVariableId()).isEqualTo("s"); Assertions.assertThat(var.getVariableInstanceId()).isEqualTo("s"); Assertions.assertThat(var.getValue()).isEqualTo("test value"); Assertions.assertThat(var.getOldValue()).isEqualTo("InitialValue"); Assertions.assertThat(var.getProcessInstanceId().longValue()).isEqualTo(processInstance.getId()); Assertions.assertThat(var.getProcessId()).isEqualTo(processInstance.getProcessId()); Assertions.assertThat(var.getVariableId()).isEqualTo("s"); Assertions.assertThat(var.getVariableInstanceId()).isEqualTo("s"); logService.clear();
KieSession ksession = createKnowledgeSession(kbase); TestWorkItemHandler workItemHandler = new TestWorkItemHandler(); ksession.getWorkItemManager().registerWorkItemHandler("Human Task", workItemHandler); String varValue = "initialValue"; params.put(varId, varValue); ProcessInstance processInstance = ksession.startProcess("UserTask", params); assertThat(processInstance.getState()).isEqualTo(ProcessInstance.STATE_ACTIVE); List<VariableInstanceLog> varLogs = logService.findVariableInstancesByName(varId, true); assertThat(varLogs).isNotEmpty(); for( VariableInstanceLog varLog : varLogs ) { assertThat(varLog.getVariableId()).isEqualTo(varId); varLogs = logService.findVariableInstancesByNameAndValue( varId, varValue, true); assertThat(varLogs).isNotEmpty(); for( VariableInstanceLog varLog : varLogs ) { assertThat(varLog.getVariableId()).isEqualTo(varId); assertThat(varLog.getValue()).isEqualTo(varValue); assertThat(workItem).isNotNull(); assertThat(workItem.getParameter("ActorId")).isEqualTo("john"); ksession.getWorkItemManager().completeWorkItem(workItem.getId(), null); assertProcessInstanceCompleted(processInstance.getId(), ksession);
Assertions.assertThat(variableInstances.size()).isEqualTo(13); for (VariableInstanceLog variableInstance: variableInstances) { logger.debug(variableInstance.toString()); Assertions.assertThat(processInstance.getProcessInstanceId().longValue()).isEqualTo(processInstanceId); Assertions.assertThat(processInstance.getProcessId()).isEqualTo("com.sample.ruleflow3"); Assertions.assertThat(variableInstance.getDate()).isNotNull(); if (v.getVariableInstanceId().equals("list")) { listVariables.add(v); List<String> variableIds = new ArrayList<String>(); for (VariableInstanceLog var : listVariables) { variableValues.add(var.getValue()); variableIds.add(var.getVariableId()); Assertions.assertThat(var.getOldValue()).isIn("", " ", null); Assertions.assertThat(var.getProcessInstanceId()).isEqualTo(processInstance.getProcessInstanceId()); Assertions.assertThat(var.getProcessId()).isEqualTo(processInstance.getProcessId()); Assertions.assertThat(var.getVariableInstanceId()).isEqualTo("list"); Assertions.assertThat(emptyVarLogs).isEmpty(); for( VariableInstanceLog origVarLog : variableInstances ) { varLogs = auditLogService.findVariableInstancesByName(origVarLog.getVariableId(), false) ; for( VariableInstanceLog varLog : varLogs ) { Assertions.assertThat(varLog.getVariableId()).isEqualTo(origVarLog.getVariableId()); Assertions.assertThat(variableInstances.size()).isEqualTo(3); VariableInstanceLog varLog = variableInstances.get(0); Assertions.assertThat(varLog.getVariableId()).isEqualTo(varId);
params.put("inputStr", new MyType(initValue, RandomUtil.nextInt())); params.put("otherStr", new MyType(initValue, RandomUtil.nextInt())); ProcessInstance processInstance = ksession.startProcess(PROCESS_OBJ_VAR_ID, params); assertTrue( processInstance != null && processInstance.getState() == ProcessInstance.STATE_ACTIVE); long procInstId = processInstance.getId(); taskService.complete(taskId, USER_ID, taskResults); assertNull("Process instance has not been finished.", ksession.getProcessInstance(procInstId) ); List<VariableInstanceLog> vils = logService.findVariableInstances(procInstId); assertTrue( "No variable instance logs found", vils != null && ! vils.isEmpty() ); assertTrue( "Too few variable instance logs found: " + vils.size(), vils.size() >= 3 ); if( ! vil.getVariableId().equals("inputStr") ) { continue; lastVil = vil; if( lastVil.getId() < vil.getId() ) { lastVil = vil; assertTrue( lastVil.getVariableId() + ": " + lastVil.getValue(), lastVil.getValue().contains("check") || lastVil.getVariableId().equals("otherStr") );
public String getProcessVarValue(ProcessInstance processInstance, String varName) { String actualValue = null; if (sessionPersistence) { List<VariableInstanceLog> log = logService.findVariableInstances(processInstance.getId(), varName); if (log != null && !log.isEmpty()) { actualValue = log.get(log.size()-1).getValue(); } } else { Object value = ((WorkflowProcessInstanceImpl) processInstance).getVariable(varName); if (value != null) { actualValue = value.toString(); } } return actualValue; }
@Test public void variableInstanceLogTest() throws Exception { Assume.assumeFalse(getType().equals(TestType.YAML)); long processInstanceId = 23; String processId = "org.hospital.intern.rounds"; String variableInstanceId = "patientNum-1"; String variableId = "patientNum"; String value = "33"; String oldValue = "32"; VariableInstanceLog origLog = new VariableInstanceLog(processInstanceId, processId, variableInstanceId, variableId, value, oldValue); origLog.setExternalId("outside-identity-representation"); origLog.setOldValue("previous-data-that-this-variable-contains"); origLog.setValue("the-new-data-that-has-been-put-in-this-variable"); origLog.setVariableId("shortend-representation-of-this-representation"); origLog.setVariableInstanceId("id-instance-variable"); JaxbVariableInstanceLog xmlLog = new JaxbVariableInstanceLog(origLog); xmlLog.setCommandName("test-cmd"); xmlLog.setIndex(2); JaxbVariableInstanceLog newXmlLog = testRoundTrip(xmlLog); ComparePair.compareOrig(xmlLog, newXmlLog, JaxbVariableInstanceLog.class); VariableInstanceLog newLog = newXmlLog.getResult(); ComparePair.compareOrig(origLog, newLog, VariableInstanceLog.class); }
VariableInstanceLog log = (VariableInstanceLog) builder.buildEvent(event); ((org.jbpm.process.audit.VariableInstanceLog)processVariable).setProcessId(log.getProcessId()); ((org.jbpm.process.audit.VariableInstanceLog)processVariable).setProcessInstanceId(log.getProcessInstanceId()); ((org.jbpm.process.audit.VariableInstanceLog)processVariable).setDate(log.getDate()); ((org.jbpm.process.audit.VariableInstanceLog)processVariable).setExternalId(log.getExternalId()); ((org.jbpm.process.audit.VariableInstanceLog)processVariable).setOldValue(log.getOldValue()); ((org.jbpm.process.audit.VariableInstanceLog)processVariable).setVariableInstanceId(log.getVariableInstanceId());
@Test public void simpleVariableInstanceLogQueryBuilderTest() { int p = 0; Date date = vilTestData[p++].getDate(); VariableInstanceLogQueryBuilder builder = this.variableInstanceLogQuery().date(date); List<org.kie.api.runtime.manager.audit.VariableInstanceLog> resultList = builder.build().getResultList(); String oldValue = vilTestData[p++].getOldValue(); builder = this.variableInstanceLogQuery().oldValue(oldValue); resultList = builder.build().getResultList(); String processId = vilTestData[p++].getProcessId(); builder = this.variableInstanceLogQuery().processId(processId); resultList = builder.build().getResultList(); long processInstanceId = vilTestData[p++].getProcessInstanceId(); builder = this.variableInstanceLogQuery().processInstanceId(processInstanceId); resultList = builder.build().getResultList(); String value = vilTestData[p++].getValue(); builder = this.variableInstanceLogQuery().value(value); resultList = builder.build().getResultList(); String variableId = vilTestData[p++].getVariableId(); builder = this.variableInstanceLogQuery().variableId(variableId); resultList = builder.build().getResultList(); String varInstId = vilTestData[p++].getVariableInstanceId(); builder = this.variableInstanceLogQuery().variableInstanceId(varInstId); resultList = builder.build().getResultList();
VariableInstanceLog vLog = new VariableInstanceLog(23, "process", "varInst", "var", "two", "one"); vLog.setExternalId("domain"); Field dateField = VariableInstanceLog.class.getDeclaredField("date"); dateField.setAccessible(true);
@Override public AuditEvent buildEvent(ProcessVariableChangedEvent pvce) { VariableInstanceLog variableLog = (VariableInstanceLog) super.buildEvent(pvce); variableLog.setExternalId(ownerId); return variableLog; }
testData[i] = new VariableInstanceLog(23L, "org.lots.of.vars", "inst", "first-var", "val-a", "oldVal-" + i); testData[i+5] = new VariableInstanceLog(23L, "org.lots.of.vars", "inst", "second-var", "val-b", "oldVal-" + i); testData[i].setDate(cal.getTime()); testData[i+5].setDate(cal.getTime());
for( int i = 0; i < testData.length; ++i ) { cal.roll(Calendar.SECOND, 1); testData[i] = new VariableInstanceLog(randomLong(), processId, "varInstId", "var-" +i, "val-"+i, "oldVal-" + i);
public VariableInstanceLog(long processInstanceId, String processId, String variableInstanceId, String variableId, String value) { this.processInstanceId = processInstanceId; this.processId = processId; this.variableInstanceId = variableInstanceId; this.variableId = variableId; setValue(value); this.date = new Date(); }
long procInstId = varLogs.get(0).getProcessInstanceId(); Set<Long> uniqueIds = new HashSet<Long>(numVarLogs); for( VariableInstanceLog varLog : varLogs ) { assertTrue( "Unique var logs", uniqueIds.add(varLog.getId()) ); Set<Long> uniqueIds = new HashSet<Long>(numVarLogs); for( VariableInstanceLog varLog : varLogs ) { assertTrue( "Unique var logs", uniqueIds.add(varLog.getId()) );
List<ProcessInstanceLog> processInstances = auditLogService.findProcessInstances("com.sample.ruleflow"); int initialProcessInstanceSize = processInstances.size(); list.add("Three"); params.put("list", list); long processInstanceId = session.startProcess("com.sample.ruleflow3", params).getId(); List<VariableInstanceLog> varLogs = auditLogService.findVariableInstancesByName("s", true) ; Assertions.assertThat(varLogs).isNotEmpty(); Assertions.assertThat(varLogs.size()).isEqualTo(1); Assertions.assertThat(variableInstances.size()).isEqualTo(11); for (VariableInstanceLog variableInstance: variableInstances) { logger.debug(variableInstance.toString()); Assertions.assertThat(processInstance.getProcessInstanceId().longValue()).isEqualTo(processInstanceId); Assertions.assertThat(processInstance.getProcessId()).isEqualTo("com.sample.ruleflow3"); Assertions.assertThat(variableInstance.getDate()).isNotNull(); Assertions.assertThat(emptyVarLogs).isEmpty(); for( VariableInstanceLog origVarLog : variableInstances ) { varLogs = auditLogService.findVariableInstancesByName(origVarLog.getVariableId(), false) ; for( VariableInstanceLog varLog : varLogs ) { Assertions.assertThat(varLog.getVariableId()).isEqualTo(origVarLog.getVariableId()); Assertions.assertThat(variableInstances.size()).isEqualTo(3); VariableInstanceLog varLog = variableInstances.get(0); Assertions.assertThat(varLog.getVariableId()).isEqualTo(varId); Assertions.assertThat(varLog.getValue()).isEqualTo(varValue);