public HistoryEvent createProcessInstanceEndEvt(DelegateExecution execution) { final ExecutionEntity executionEntity = (ExecutionEntity) execution; // create event instance HistoricProcessInstanceEventEntity evt = loadProcessInstanceEventEntity(executionEntity); // initialize event initProcessInstanceEvent(evt, executionEntity, HistoryEventTypes.PROCESS_INSTANCE_END); determineEndState(executionEntity, evt); // set end activity id evt.setEndActivityId(executionEntity.getActivityId()); evt.setEndTime(ClockUtil.getCurrentTime()); if(evt.getStartTime() != null) { evt.setDurationInMillis(evt.getEndTime().getTime()-evt.getStartTime().getTime()); } if (isRootProcessInstance(evt) && isHistoryRemovalTimeStrategyEnd()) { Date removalTime = calculateRemovalTime(evt); if (removalTime != null) { addRemovalTimeToHistoricProcessInstances(evt.getRootProcessInstanceId(), removalTime); if (isDmnEnabled()) { addRemovalTimeToHistoricDecisions(evt.getRootProcessInstanceId(), removalTime); } } } // set delete reason (if applicable). if (executionEntity.getDeleteReason() != null) { evt.setDeleteReason(executionEntity.getDeleteReason()); } return evt; }
public HistoryEvent createProcessInstanceEndEvt(DelegateExecution execution) { final ExecutionEntity executionEntity = (ExecutionEntity) execution; // create event instance HistoricProcessInstanceEventEntity evt = loadProcessInstanceEventEntity(executionEntity); // initialize event initProcessInstanceEvent(evt, executionEntity, HistoryEventTypes.PROCESS_INSTANCE_END); determineEndState(executionEntity, evt); // set end activity id evt.setEndActivityId(executionEntity.getActivityId()); evt.setEndTime(ClockUtil.getCurrentTime()); if(evt.getStartTime() != null) { evt.setDurationInMillis(evt.getEndTime().getTime()-evt.getStartTime().getTime()); } if (isRootProcessInstance(evt) && isHistoryRemovalTimeStrategyEnd()) { Date removalTime = calculateRemovalTime(evt); if (removalTime != null) { addRemovalTimeToHistoricProcessInstances(evt.getRootProcessInstanceId(), removalTime); if (isDmnEnabled()) { addRemovalTimeToHistoricDecisions(evt.getRootProcessInstanceId(), removalTime); } } } // set delete reason (if applicable). if (executionEntity.getDeleteReason() != null) { evt.setDeleteReason(executionEntity.getDeleteReason()); } return evt; }
public void testExecutionEntitySerialization() throws Exception { ExecutionEntity execution = new ExecutionEntity(); ActivityImpl activityImpl = new ActivityImpl("test", null); activityImpl.getExecutionListeners().put("start", Collections.<ExecutionListener>singletonList(new TestExecutionListener())); execution.setActivity(activityImpl); ProcessDefinitionImpl processDefinitionImpl = new ProcessDefinitionImpl("test"); processDefinitionImpl.getExecutionListeners().put("start", Collections.<ExecutionListener>singletonList(new TestExecutionListener())); execution.setProcessDefinition(processDefinitionImpl); TransitionImpl transitionImpl = new TransitionImpl("test", new ProcessDefinitionImpl("test")); transitionImpl.addExecutionListener(new TestExecutionListener()); execution.setTransition(transitionImpl); execution.getProcessInstanceStartContext().setInitial(activityImpl); execution.setSuperExecution(new ExecutionEntity()); execution.setActive(true); execution.setCanceled(false); execution.setBusinessKey("myBusinessKey"); execution.setDeleteReason("no reason"); execution.setActivityInstanceId("123"); execution.setScope(false); byte[] data = writeObject(execution); execution = (ExecutionEntity) readObject(data); assertEquals("myBusinessKey", execution.getBusinessKey()); assertEquals("no reason", execution.getDeleteReason()); assertEquals("123", execution.getActivityInstanceId()); }
public HistoryEvent createProcessInstanceEndEvt(DelegateExecution execution) { final ExecutionEntity executionEntity = (ExecutionEntity) execution; // create event instance HistoricProcessInstanceEventEntity evt = loadProcessInstanceEventEntity(executionEntity); // initialize event initProcessInstanceEvent(evt, executionEntity, HistoryEventTypes.PROCESS_INSTANCE_END); determineEndState(executionEntity, evt); // set end activity id evt.setEndActivityId(executionEntity.getActivityId()); evt.setEndTime(ClockUtil.getCurrentTime()); if(evt.getStartTime() != null) { evt.setDurationInMillis(evt.getEndTime().getTime()-evt.getStartTime().getTime()); } if (isRootProcessInstance(evt) && isHistoryRemovalTimeStrategyEnd()) { Date removalTime = calculateRemovalTime(evt); if (removalTime != null) { addRemovalTimeToHistoricProcessInstances(evt.getRootProcessInstanceId(), removalTime); if (isDmnEnabled()) { addRemovalTimeToHistoricDecisions(evt.getRootProcessInstanceId(), removalTime); } } } // set delete reason (if applicable). if (executionEntity.getDeleteReason() != null) { evt.setDeleteReason(executionEntity.getDeleteReason()); } return evt; }
public void testExecutionEntitySerialization() throws Exception { ExecutionEntity execution = new ExecutionEntity(); ActivityImpl activityImpl = new ActivityImpl("test", null); activityImpl.getExecutionListeners().put("start", Collections.<ExecutionListener>singletonList(new TestExecutionListener())); execution.setActivity(activityImpl); ProcessDefinitionImpl processDefinitionImpl = new ProcessDefinitionImpl("test"); processDefinitionImpl.getExecutionListeners().put("start", Collections.<ExecutionListener>singletonList(new TestExecutionListener())); execution.setProcessDefinition(processDefinitionImpl); TransitionImpl transitionImpl = new TransitionImpl("test", new ProcessDefinitionImpl("test")); transitionImpl.addExecutionListener(new TestExecutionListener()); execution.setTransition(transitionImpl); execution.getProcessInstanceStartContext().setInitial(activityImpl); execution.setSuperExecution(new ExecutionEntity()); execution.setActive(true); execution.setCanceled(false); execution.setBusinessKey("myBusinessKey"); execution.setDeleteReason("no reason"); execution.setActivityInstanceId("123"); execution.setScope(false); byte[] data = writeObject(execution); execution = (ExecutionEntity) readObject(data); assertEquals("myBusinessKey", execution.getBusinessKey()); assertEquals("no reason", execution.getDeleteReason()); assertEquals("123", execution.getActivityInstanceId()); }