From cc1102fd9b32efb5ee5b06dfa9894168a9e810b4 Mon Sep 17 00:00:00 2001 From: Elias Ricken de Medeiros Date: Thu, 6 Dec 2018 13:33:43 +0100 Subject: [PATCH] Set process instance name (#142) Process instance name is not available in ProcessCreatedEvent, so we need to update it in ProcessStartedEventHandler Refs https://github.com/Activiti/Activiti/issues/1952 --- .../query/events/handlers/ProcessStartedEventHandler.java | 2 ++ .../query/events/handlers/ProcessStartedEventHandlerTest.java | 4 +++- .../cloud/starter/tests/QueryProcessInstancesEntityIT.java | 3 +++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/activiti-cloud-services-query/activiti-cloud-services-query-rest/src/main/java/org/activiti/cloud/services/query/events/handlers/ProcessStartedEventHandler.java b/activiti-cloud-services-query/activiti-cloud-services-query-rest/src/main/java/org/activiti/cloud/services/query/events/handlers/ProcessStartedEventHandler.java index 71c5b8af..66a0599f 100644 --- a/activiti-cloud-services-query/activiti-cloud-services-query-rest/src/main/java/org/activiti/cloud/services/query/events/handlers/ProcessStartedEventHandler.java +++ b/activiti-cloud-services-query/activiti-cloud-services-query-rest/src/main/java/org/activiti/cloud/services/query/events/handlers/ProcessStartedEventHandler.java @@ -54,6 +54,8 @@ public void handle(CloudRuntimeEvent event) { () -> new QueryException("Unable to find process instance with the given id: " + processInstanceId)); if (ProcessInstance.ProcessInstanceStatus.CREATED.equals(processInstanceEntity.getStatus())) { processInstanceEntity.setStatus(ProcessInstance.ProcessInstanceStatus.RUNNING); + //instance name is not available in ProcessCreatedEvent, so we need to updated it here + processInstanceEntity.setName(startedEvent.getEntity().getName()); processInstanceEntity.setLastModified(new Date(startedEvent.getTimestamp())); processInstanceRepository.save(processInstanceEntity); } diff --git a/activiti-cloud-services-query/activiti-cloud-services-query-rest/src/test/java/org/activiti/cloud/services/query/events/handlers/ProcessStartedEventHandlerTest.java b/activiti-cloud-services-query/activiti-cloud-services-query-rest/src/test/java/org/activiti/cloud/services/query/events/handlers/ProcessStartedEventHandlerTest.java index 18db2b39..8ef4fe40 100644 --- a/activiti-cloud-services-query/activiti-cloud-services-query-rest/src/test/java/org/activiti/cloud/services/query/events/handlers/ProcessStartedEventHandlerTest.java +++ b/activiti-cloud-services-query/activiti-cloud-services-query-rest/src/test/java/org/activiti/cloud/services/query/events/handlers/ProcessStartedEventHandlerTest.java @@ -58,7 +58,7 @@ public void setUp() { } @Test - public void handleShouldUpdateProcessInstanceStatusToRunning() { + public void handleShouldUpdateProcessInstanceStatusToRunningAndUpdateInstanceName() { //given CloudProcessStartedEvent event = buildProcessStartedEvent(); ProcessInstanceEntity currentProcessInstanceEntity = mock(ProcessInstanceEntity.class); @@ -71,6 +71,7 @@ public void handleShouldUpdateProcessInstanceStatusToRunning() { //then verify(processInstanceRepository).save(currentProcessInstanceEntity); verify(currentProcessInstanceEntity).setStatus(ProcessInstance.ProcessInstanceStatus.RUNNING); + verify(currentProcessInstanceEntity).setName(event.getEntity().getName()); } @Test @@ -94,6 +95,7 @@ public void handleShouldIgnoreEventIfProcessInstanceIsAlreadyInRunningStatus() { private CloudProcessStartedEvent buildProcessStartedEvent() { ProcessInstanceImpl processInstance = new ProcessInstanceImpl(); processInstance.setId(UUID.randomUUID().toString()); + processInstance.setName("my instance name"); return new CloudProcessStartedEventImpl(processInstance); } diff --git a/activiti-cloud-starter-query/src/test/java/org/activiti/cloud/starter/tests/QueryProcessInstancesEntityIT.java b/activiti-cloud-starter-query/src/test/java/org/activiti/cloud/starter/tests/QueryProcessInstancesEntityIT.java index ae6658a5..db486da9 100644 --- a/activiti-cloud-starter-query/src/test/java/org/activiti/cloud/starter/tests/QueryProcessInstancesEntityIT.java +++ b/activiti-cloud-starter-query/src/test/java/org/activiti/cloud/starter/tests/QueryProcessInstancesEntityIT.java @@ -106,10 +106,13 @@ public void shouldGetAvailableProcInstancesAndFilteredProcessInstances() { Collection processInstanceEntities = responseEntity.getBody().getContent(); assertThat(processInstanceEntities) .extracting(ProcessInstanceEntity::getId, + ProcessInstanceEntity::getName, ProcessInstanceEntity::getStatus) .contains(tuple(completedProcess.getId(), + "first", ProcessInstance.ProcessInstanceStatus.COMPLETED), tuple(runningProcess.getId(), + "second", ProcessInstance.ProcessInstanceStatus.RUNNING)); });