diff --git a/CHANGELOG.md b/CHANGELOG.md index eef355c3e..4257ee654 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,12 @@ +## 5.0.0 (2018-mm-dd) + +**Highlights** +- Fix to work with Spring Boot 2.x + +**Details** +- nflow-rest-api-jax-rs: + - Change endpoint paths for workflow instance: /v1/workflow-instance/{id} -> /v1/workflow-instance/id/{id} + ## 4.2.0 (2017-05-16) **Highlights** diff --git a/nflow-engine/src/main/java/io/nflow/engine/service/WorkflowDefinitionService.java b/nflow-engine/src/main/java/io/nflow/engine/service/WorkflowDefinitionService.java index 41706a00f..aada9a848 100644 --- a/nflow-engine/src/main/java/io/nflow/engine/service/WorkflowDefinitionService.java +++ b/nflow-engine/src/main/java/io/nflow/engine/service/WorkflowDefinitionService.java @@ -34,15 +34,13 @@ public class WorkflowDefinitionService { private static final Logger logger = getLogger(WorkflowDefinitionService.class); - private final AbstractResource nonSpringWorkflowsListing; + private AbstractResource nonSpringWorkflowsListing; private final Map> workflowDefitions = new LinkedHashMap<>(); private final WorkflowDefinitionDao workflowDefinitionDao; private final boolean persistWorkflowDefinitions; @Inject - public WorkflowDefinitionService(@NFlow AbstractResource nflowNonSpringWorkflowsListing, - WorkflowDefinitionDao workflowDefinitionDao, Environment env) { - this.nonSpringWorkflowsListing = nflowNonSpringWorkflowsListing; + public WorkflowDefinitionService(WorkflowDefinitionDao workflowDefinitionDao, Environment env) { this.workflowDefinitionDao = workflowDefinitionDao; this.persistWorkflowDefinitions = env.getRequiredProperty("nflow.definition.persist", Boolean.class); } @@ -51,13 +49,18 @@ public WorkflowDefinitionService(@NFlow AbstractResource nflowNonSpringWorkflows * Add given workflow definitions to the managed definitions. * @param workflowDefinitions The workflow definitions to be added. */ - @Autowired(required=false) + @Autowired(required = false) public void setWorkflowDefinitions(Collection> workflowDefinitions) { for (AbstractWorkflowDefinition wd : workflowDefinitions) { addWorkflowDefinition(wd); } } + @Autowired(required = false) + public void setWorkflowDefinitions(@NFlow AbstractResource nflowNonSpringWorkflowsListing) { + this.nonSpringWorkflowsListing = nflowNonSpringWorkflowsListing; + } + /** * Return the workflow definition that matches the give workflow type name. * @param type Workflow definition type. diff --git a/nflow-engine/src/test/java/io/nflow/engine/service/WorkflowDefinitionServiceTest.java b/nflow-engine/src/test/java/io/nflow/engine/service/WorkflowDefinitionServiceTest.java index 43502bc37..1002e4388 100644 --- a/nflow-engine/src/test/java/io/nflow/engine/service/WorkflowDefinitionServiceTest.java +++ b/nflow-engine/src/test/java/io/nflow/engine/service/WorkflowDefinitionServiceTest.java @@ -45,7 +45,8 @@ public void setup() throws Exception { String dummyTestClassname = DummyTestWorkflow.class.getName(); ByteArrayInputStream bis = new ByteArrayInputStream(dummyTestClassname.getBytes(UTF_8)); when(nonSpringWorkflowListing.getInputStream()).thenReturn(bis); - service = new WorkflowDefinitionService(nonSpringWorkflowListing, workflowDefinitionDao, env); + service = new WorkflowDefinitionService(workflowDefinitionDao, env); + service.setWorkflowDefinitions(nonSpringWorkflowListing); assertThat(service.getWorkflowDefinitions().size(), is(equalTo(0))); service.postProcessWorkflowDefinitions(); assertThat(service.getWorkflowDefinitions().size(), is(equalTo(1))); @@ -80,7 +81,7 @@ public void getWorkflowDefinitionReturnsDefinitionWhenTypeIsFound() { @Test public void nonSpringWorkflowsAreOptional() throws Exception { - service = new WorkflowDefinitionService(null, workflowDefinitionDao, env); + service = new WorkflowDefinitionService(workflowDefinitionDao, env); service.postProcessWorkflowDefinitions(); assertEquals(0, service.getWorkflowDefinitions().size()); } diff --git a/nflow-jetty/src/test/java/io/nflow/jetty/mapper/BadRequestExceptionMapperTest.java b/nflow-jetty/src/test/java/io/nflow/jetty/mapper/BadRequestExceptionMapperTest.java index 4a6095dc1..faa04771f 100644 --- a/nflow-jetty/src/test/java/io/nflow/jetty/mapper/BadRequestExceptionMapperTest.java +++ b/nflow-jetty/src/test/java/io/nflow/jetty/mapper/BadRequestExceptionMapperTest.java @@ -9,14 +9,13 @@ import org.junit.Test; -import io.nflow.jetty.mapper.BadRequestExceptionMapper; - public class BadRequestExceptionMapperTest { BadRequestExceptionMapper mapper = new BadRequestExceptionMapper(); @Test public void badRequestExceptionResultInStatusBadRequest() { - Response response = mapper.toResponse(new BadRequestException()); - assertThat(response.getStatus(), is(BAD_REQUEST.getStatusCode())); + try (Response response = mapper.toResponse(new BadRequestException())) { + assertThat(response.getStatus(), is(BAD_REQUEST.getStatusCode())); + } } } diff --git a/nflow-jetty/src/test/java/io/nflow/jetty/mapper/CustomValidationExceptionMapperTest.java b/nflow-jetty/src/test/java/io/nflow/jetty/mapper/CustomValidationExceptionMapperTest.java index c6b4c76ba..90b57a512 100644 --- a/nflow-jetty/src/test/java/io/nflow/jetty/mapper/CustomValidationExceptionMapperTest.java +++ b/nflow-jetty/src/test/java/io/nflow/jetty/mapper/CustomValidationExceptionMapperTest.java @@ -22,8 +22,6 @@ import org.junit.runner.RunWith; import org.mockito.junit.MockitoJUnitRunner; -import io.nflow.jetty.mapper.CustomValidationExceptionMapper; - @RunWith(MockitoJUnitRunner.class) public class CustomValidationExceptionMapperTest { @@ -47,9 +45,10 @@ public void constraintViolationExceptionCausesBadRequest() { ConstraintViolationException cex = mock(ConstraintViolationException.class); when(cex.getConstraintViolations()).thenReturn(new LinkedHashSet(asList(violation))); - Response resp = exceptionMapper.toResponse(cex); - assertThat(resp.getStatus(), is(BAD_REQUEST_400)); - assertThat(resp.getEntity().toString(), is("violationPath: violationMessage")); + try (Response resp = exceptionMapper.toResponse(cex)) { + assertThat(resp.getStatus(), is(BAD_REQUEST_400)); + assertThat(resp.getEntity().toString(), is("violationPath: violationMessage")); + } } @SuppressWarnings({ "unchecked", "rawtypes" }) @@ -65,14 +64,16 @@ public void responseConstraintViolationExceptionCausesInternalServerError() { ConstraintViolationException cex = mock(ResponseConstraintViolationException.class); when(cex.getConstraintViolations()).thenReturn(new LinkedHashSet(asList(violation))); - Response resp = exceptionMapper.toResponse(cex); - assertThat(resp.getStatus(), is(INTERNAL_SERVER_ERROR_500)); + try (Response resp = exceptionMapper.toResponse(cex)) { + assertThat(resp.getStatus(), is(INTERNAL_SERVER_ERROR_500)); + } } @Test public void otherExceptionsCauseInternalServerException() { ValidationException cex = mock(ValidationException.class); - Response resp = exceptionMapper.toResponse(cex); - assertThat(resp.getStatus(), is(INTERNAL_SERVER_ERROR_500)); + try (Response resp = exceptionMapper.toResponse(cex)) { + assertThat(resp.getStatus(), is(INTERNAL_SERVER_ERROR_500)); + } } } diff --git a/nflow-jetty/src/test/java/io/nflow/jetty/mapper/NotFoundExceptionMapperTest.java b/nflow-jetty/src/test/java/io/nflow/jetty/mapper/NotFoundExceptionMapperTest.java index 6d1ea09a1..2eba92fa8 100644 --- a/nflow-jetty/src/test/java/io/nflow/jetty/mapper/NotFoundExceptionMapperTest.java +++ b/nflow-jetty/src/test/java/io/nflow/jetty/mapper/NotFoundExceptionMapperTest.java @@ -9,14 +9,13 @@ import org.junit.Test; -import io.nflow.jetty.mapper.NotFoundExceptionMapper; - public class NotFoundExceptionMapperTest { NotFoundExceptionMapper mapper = new NotFoundExceptionMapper(); @Test public void notFoundExceptionResultInStatusNotFound() { - Response response = mapper.toResponse(new NotFoundException()); - assertThat(response.getStatus(), is(NOT_FOUND.getStatusCode())); + try (Response response = mapper.toResponse(new NotFoundException())) { + assertThat(response.getStatus(), is(NOT_FOUND.getStatusCode())); + } } } diff --git a/nflow-netty/src/main/java/io/nflow/netty/config/NflowNettyConfiguration.java b/nflow-netty/src/main/java/io/nflow/netty/config/NflowNettyConfiguration.java index 722ba8cab..67b83eb13 100644 --- a/nflow-netty/src/main/java/io/nflow/netty/config/NflowNettyConfiguration.java +++ b/nflow-netty/src/main/java/io/nflow/netty/config/NflowNettyConfiguration.java @@ -17,7 +17,7 @@ import io.nflow.rest.config.RestConfiguration; @Configuration -@ComponentScan("ios.nflow.rest.v1.springweb") +@ComponentScan("io.nflow.rest.v1.springweb") @Import(RestConfiguration.class) @EnableTransactionManagement @EnableWebFlux diff --git a/nflow-rest-api-jax-rs/src/main/java/io/nflow/rest/v1/jaxrs/WorkflowInstanceResource.java b/nflow-rest-api-jax-rs/src/main/java/io/nflow/rest/v1/jaxrs/WorkflowInstanceResource.java index 0a66abd9f..22f999b04 100644 --- a/nflow-rest-api-jax-rs/src/main/java/io/nflow/rest/v1/jaxrs/WorkflowInstanceResource.java +++ b/nflow-rest-api-jax-rs/src/main/java/io/nflow/rest/v1/jaxrs/WorkflowInstanceResource.java @@ -93,7 +93,7 @@ public Response createWorkflowInstance( } @PUT - @Path("/{id}") + @Path("/id/{id}") @ApiOperation(value = "Update workflow instance", notes = "The service is typically used in manual state " + "transition via nFlow Explorer or a business UI.") @ApiResponses({ @ApiResponse(code = 204, message = "If update was successful"), @@ -105,7 +105,7 @@ public Response updateWorkflowInstance(@ApiParam("Internal id for workflow insta } @GET - @Path("/{id}") + @Path("/id/{id}") @ApiOperation(value = "Fetch a workflow instance", notes = "Fetch full state and action history of a single workflow instance.") public ListWorkflowInstanceResponse fetchWorkflowInstance( @ApiParam("Internal id for workflow instance") @PathParam("id") int id, diff --git a/nflow-rest-api-jax-rs/src/test/java/io/nflow/rest/v1/jaxrs/WorkflowInstanceResourceTest.java b/nflow-rest-api-jax-rs/src/test/java/io/nflow/rest/v1/jaxrs/WorkflowInstanceResourceTest.java index d192c8978..f447050e8 100644 --- a/nflow-rest-api-jax-rs/src/test/java/io/nflow/rest/v1/jaxrs/WorkflowInstanceResourceTest.java +++ b/nflow-rest-api-jax-rs/src/test/java/io/nflow/rest/v1/jaxrs/WorkflowInstanceResourceTest.java @@ -50,7 +50,6 @@ import io.nflow.engine.workflow.instance.WorkflowInstanceFactory; import io.nflow.rest.v1.converter.CreateWorkflowConverter; import io.nflow.rest.v1.converter.ListWorkflowInstanceConverter; -import io.nflow.rest.v1.jaxrs.WorkflowInstanceResource; import io.nflow.rest.v1.msg.CreateWorkflowInstanceRequest; import io.nflow.rest.v1.msg.ListWorkflowInstanceResponse; import io.nflow.rest.v1.msg.SetSignalRequest; @@ -84,7 +83,7 @@ public void setup() { resource = new WorkflowInstanceResource(workflowInstances, createWorkflowConverter, listWorkflowConverter, workflowInstanceFactory); when(workflowInstanceFactory.newWorkflowInstanceBuilder()) - .thenReturn(new WorkflowInstance.Builder(new ObjectStringMapper(new ObjectMapper()))); + .thenReturn(new WorkflowInstance.Builder(new ObjectStringMapper(new ObjectMapper()))); } @Test @@ -93,12 +92,13 @@ public void createWorkflowInstanceWorks() { WorkflowInstance inst = mock(WorkflowInstance.class); when(createWorkflowConverter.convert(req)).thenReturn(inst); when(workflowInstances.insertWorkflowInstance(inst)).thenReturn(1); - Response r = resource.createWorkflowInstance(req); - assertThat(r.getStatus(), is(201)); - assertThat(r.getHeaderString("Location"), is("1")); - verify(createWorkflowConverter).convert(req); - verify(workflowInstances).insertWorkflowInstance(any(WorkflowInstance.class)); - verify(workflowInstances).getWorkflowInstance(1, EnumSet.of(WorkflowInstanceInclude.CURRENT_STATE_VARIABLES), null); + try (Response r = resource.createWorkflowInstance(req)) { + assertThat(r.getStatus(), is(201)); + assertThat(r.getHeaderString("Location"), is("1")); + verify(createWorkflowConverter).convert(req); + verify(workflowInstances).insertWorkflowInstance(any(WorkflowInstance.class)); + verify(workflowInstances).getWorkflowInstance(1, EnumSet.of(WorkflowInstanceInclude.CURRENT_STATE_VARIABLES), null); + } } @Test @@ -115,8 +115,8 @@ public void whenUpdatingMessageStateTextIsUpdated() { resource.updateWorkflowInstance(3, req); verify(workflowInstances).updateWorkflowInstance( - (WorkflowInstance) argThat(allOf(hasField("state", equalTo(req.state)), hasField("status", equalTo(null)))), - (WorkflowInstanceAction) argThat(hasField("stateText", equalTo("my desc")))); + (WorkflowInstance) argThat(allOf(hasField("state", equalTo(req.state)), hasField("status", equalTo(null)))), + (WorkflowInstanceAction) argThat(hasField("stateText", equalTo("my desc")))); } @Test @@ -181,20 +181,20 @@ public void listWorkflowInstancesWorks() { resource.listWorkflowInstances(asList(42), asList("type"), 99, 88, asList("state"), asList(WorkflowInstanceStatus.created), "businessKey", "externalId", "", null, null); verify(workflowInstances).listWorkflowInstances((QueryWorkflowInstances) argThat(allOf( - hasField("ids", contains(42)), - hasField("types", contains("type")), - hasField("parentWorkflowId", is(99)), - hasField("parentActionId", is(88)), - hasField("states", contains("state")), - hasField("statuses", contains(WorkflowInstanceStatus.created)), - hasField("businessKey", equalTo("businessKey")), - hasField("externalId", equalTo("externalId")), - hasField("includeActions", equalTo(false)), - hasField("includeCurrentStateVariables", equalTo(false)), - hasField("includeActionStateVariables", equalTo(false)), - hasField("includeChildWorkflows", equalTo(false)), - hasField("maxResults", equalTo(null)), - hasField("maxActions", equalTo(null))))); + hasField("ids", contains(42)), + hasField("types", contains("type")), + hasField("parentWorkflowId", is(99)), + hasField("parentActionId", is(88)), + hasField("states", contains("state")), + hasField("statuses", contains(WorkflowInstanceStatus.created)), + hasField("businessKey", equalTo("businessKey")), + hasField("externalId", equalTo("externalId")), + hasField("includeActions", equalTo(false)), + hasField("includeCurrentStateVariables", equalTo(false)), + hasField("includeActionStateVariables", equalTo(false)), + hasField("includeChildWorkflows", equalTo(false)), + hasField("maxResults", equalTo(null)), + hasField("maxActions", equalTo(null))))); } @SuppressWarnings("unchecked") @@ -204,27 +204,27 @@ public void listWorkflowInstancesWorksWithAllIncludes() { asList(WorkflowInstanceStatus.created, WorkflowInstanceStatus.executing), "businessKey", "externalId", "actions,currentStateVariables,actionStateVariables,childWorkflows", 1L, 1L); verify(workflowInstances).listWorkflowInstances((QueryWorkflowInstances) argThat(allOf( - hasField("ids", contains(42)), - hasField("types", contains("type")), - hasField("parentWorkflowId", is(99)), - hasField("parentActionId", is(88)), - hasField("states", contains("state")), - hasField("statuses", contains(WorkflowInstanceStatus.created, WorkflowInstanceStatus.executing)), - hasField("businessKey", equalTo("businessKey")), - hasField("externalId", equalTo("externalId")), - hasField("includeActions", equalTo(true)), - hasField("includeCurrentStateVariables", equalTo(true)), - hasField("includeActionStateVariables", equalTo(true)), - hasField("includeChildWorkflows", equalTo(true)), - hasField("maxResults", equalTo(1L)), - hasField("maxActions", equalTo(1L))))); + hasField("ids", contains(42)), + hasField("types", contains("type")), + hasField("parentWorkflowId", is(99)), + hasField("parentActionId", is(88)), + hasField("states", contains("state")), + hasField("statuses", contains(WorkflowInstanceStatus.created, WorkflowInstanceStatus.executing)), + hasField("businessKey", equalTo("businessKey")), + hasField("externalId", equalTo("externalId")), + hasField("includeActions", equalTo(true)), + hasField("includeCurrentStateVariables", equalTo(true)), + hasField("includeActionStateVariables", equalTo(true)), + hasField("includeChildWorkflows", equalTo(true)), + hasField("maxResults", equalTo(1L)), + hasField("maxActions", equalTo(1L))))); } @Test public void fetchingNonExistingWorkflowThrowsNotFoundException() { thrown.expect(NotFoundException.class); when(workflowInstances.getWorkflowInstance(42, EnumSet.of(WorkflowInstanceInclude.STARTED), null)) - .thenThrow(EmptyResultDataAccessException.class); + .thenThrow(EmptyResultDataAccessException.class); resource.fetchWorkflowInstance(42, null, null); } @@ -260,11 +260,11 @@ public void setSignalWorks() { req.reason = "testing"; when(workflowInstances.setSignal(99, Optional.of(42), "testing", WorkflowActionType.externalChange)).thenReturn(true); - Response response = resource.setSignal(99, req); - - verify(workflowInstances).setSignal(99, Optional.of(42), "testing", WorkflowActionType.externalChange); - assertThat(response.getStatus(), is(Response.Status.OK.getStatusCode())); - assertThat(response.readEntity(String.class), is("Signal was set successfully")); + try (Response response = resource.setSignal(99, req)) { + verify(workflowInstances).setSignal(99, Optional.of(42), "testing", WorkflowActionType.externalChange); + assertThat(response.getStatus(), is(Response.Status.OK.getStatusCode())); + assertThat(response.readEntity(String.class), is("Signal was set successfully")); + } } @Test @@ -274,11 +274,11 @@ public void setSignalReturnsOkWhenSignalIsNotUpdated() { req.reason = "testing"; when(workflowInstances.setSignal(99, Optional.empty(), "testing", WorkflowActionType.externalChange)).thenReturn(false); - Response response = resource.setSignal(99, req); - - verify(workflowInstances).setSignal(99, Optional.empty(), "testing", WorkflowActionType.externalChange); - assertThat(response.getStatus(), is(Response.Status.OK.getStatusCode())); - assertThat(response.readEntity(String.class), is("Signal was not set")); + try (Response response = resource.setSignal(99, req)) { + verify(workflowInstances).setSignal(99, Optional.empty(), "testing", WorkflowActionType.externalChange); + assertThat(response.getStatus(), is(Response.Status.OK.getStatusCode())); + assertThat(response.readEntity(String.class), is("Signal was not set")); + } } } diff --git a/nflow-rest-api-spring-web/src/main/java/io/nflow/rest/v1/springweb/WorkflowInstanceResource.java b/nflow-rest-api-spring-web/src/main/java/io/nflow/rest/v1/springweb/WorkflowInstanceResource.java index 85f0652be..924fabcc3 100644 --- a/nflow-rest-api-spring-web/src/main/java/io/nflow/rest/v1/springweb/WorkflowInstanceResource.java +++ b/nflow-rest-api-spring-web/src/main/java/io/nflow/rest/v1/springweb/WorkflowInstanceResource.java @@ -74,7 +74,7 @@ public ResponseEntity createWorkflowInstance( return ResponseEntity.created(URI.create(String.valueOf(id))).body(createWorkflowConverter.convert(instance)); } - @PutMapping(path = "/{id}", consumes = APPLICATION_JSON_VALUE) + @PutMapping(path = "/id/{id}", consumes = APPLICATION_JSON_VALUE) @ApiOperation(value = "Update workflow instance", notes = "The service is typically used in manual state " + "transition via nFlow Explorer or a business UI.") @ApiResponses({ @ApiResponse(code = 204, message = "If update was successful"), @@ -85,7 +85,7 @@ public ResponseEntity updateWorkflowInstance(@ApiParam("Internal id for workf return (updated ? ResponseEntity.noContent() : ResponseEntity.status(HttpStatus.CONFLICT)).build(); } - @GetMapping(path = "/{id}") + @GetMapping(path = "/id/{id}") @ApiOperation(value = "Fetch a workflow instance", notes = "Fetch full state and action history of a single workflow instance.") public ResponseEntity fetchWorkflowInstance( @ApiParam("Internal id for workflow instance") @PathVariable("id") int id, diff --git a/nflow-tests/src/test/java/io/nflow/tests/AbstractNflowTest.java b/nflow-tests/src/test/java/io/nflow/tests/AbstractNflowTest.java index 5828e737d..2b00cbc63 100644 --- a/nflow-tests/src/test/java/io/nflow/tests/AbstractNflowTest.java +++ b/nflow-tests/src/test/java/io/nflow/tests/AbstractNflowTest.java @@ -39,6 +39,7 @@ @ContextConfiguration(classes = { RestClientConfiguration.class, PropertiesConfiguration.class }) public abstract class AbstractNflowTest { protected WebClient workflowInstanceResource; + protected WebClient workflowInstanceIdResource; protected WebClient workflowDefinitionResource; protected WebClient statisticsResource; @@ -58,6 +59,12 @@ public void setWorkflowInstanceResource(@Named("workflowInstance") WebClient cli this.workflowInstanceResource = fromClient(client, true).to(newUri, false); } + @Inject + public void setWorkflowInstanceIdResource(@Named("workflowInstanceId") WebClient client) { + String newUri = UriBuilder.fromUri(client.getCurrentURI()).port(server.getPort()).build().toString(); + this.workflowInstanceIdResource = fromClient(client, true).to(newUri, false); + } + @Inject public void setWorkflowDefinitionResource(@Named("workflowDefinition") WebClient client) { String newUri = UriBuilder.fromUri(client.getCurrentURI()).port(server.getPort()).build().toString(); @@ -71,7 +78,7 @@ public void setStatisticsResource(@Named("statistics") WebClient client) { } protected ListWorkflowInstanceResponse getWorkflowInstance(int instanceId) { - return getInstanceResource(instanceId).query("include", "currentStateVariables,actions,actionStateVariables").get( + return getInstanceIdResource(instanceId).query("include", "currentStateVariables,actions,actionStateVariables").get( ListWorkflowInstanceResponse.class); } @@ -87,6 +94,11 @@ private WebClient getInstanceResource(int instanceId) { return client; } + private WebClient getInstanceIdResource(int instanceId) { + WebClient client = fromClient(workflowInstanceIdResource, true).path(Integer.toString(instanceId)); + return client; + } + protected ListWorkflowDefinitionResponse[] getWorkflowDefinitions() { WebClient client = fromClient(workflowDefinitionResource, true); return client.get(ListWorkflowDefinitionResponse[].class); @@ -144,7 +156,7 @@ protected ObjectMapper nflowObjectMapper() { } protected String updateWorkflowInstance(int instanceId, UpdateWorkflowInstanceRequest request) { - return getInstanceResource(instanceId).put(request, String.class); + return getInstanceIdResource(instanceId).put(request, String.class); } private T makeWorkflowInstanceQuery(CreateWorkflowInstanceRequest request, Class responseClass) { diff --git a/nflow-tests/src/test/java/io/nflow/tests/CreditApplicationWorkflowTest.java b/nflow-tests/src/test/java/io/nflow/tests/CreditApplicationWorkflowTest.java index 0002a4da2..f5b947c3c 100644 --- a/nflow-tests/src/test/java/io/nflow/tests/CreditApplicationWorkflowTest.java +++ b/nflow-tests/src/test/java/io/nflow/tests/CreditApplicationWorkflowTest.java @@ -63,7 +63,7 @@ public void t03_moveToGrantLoanState() { UpdateWorkflowInstanceRequest ureq = new UpdateWorkflowInstanceRequest(); ureq.nextActivationTime = now(); ureq.state = "grantLoan"; - fromClient(workflowInstanceResource, true).path(resp.id).put(ureq); + fromClient(workflowInstanceIdResource, true).path(resp.id).put(ureq); } @Test(timeout = 5000) diff --git a/nflow-tests/src/test/java/io/nflow/tests/DemoWorkflowTest.java b/nflow-tests/src/test/java/io/nflow/tests/DemoWorkflowTest.java index 3489ba76b..afd5ac14b 100644 --- a/nflow-tests/src/test/java/io/nflow/tests/DemoWorkflowTest.java +++ b/nflow-tests/src/test/java/io/nflow/tests/DemoWorkflowTest.java @@ -85,7 +85,7 @@ public void t04_queryWorkflowWithActionsReturnsEmptyActions() { @Test public void t05_queryWorkflowWithoutActionsReturnsNullActions() { - ListWorkflowInstanceResponse instance = fromClient(workflowInstanceResource, true).path(Integer.toString(resp.id)) + ListWorkflowInstanceResponse instance = fromClient(workflowInstanceIdResource, true).path(Integer.toString(resp.id)) .get(ListWorkflowInstanceResponse.class); assertThat(instance.actions, is(nullValue())); diff --git a/nflow-tests/src/test/java/io/nflow/tests/MetricsAdminServletTest.java b/nflow-tests/src/test/java/io/nflow/tests/MetricsAdminServletTest.java index d5df122e5..9e0e5032c 100644 --- a/nflow-tests/src/test/java/io/nflow/tests/MetricsAdminServletTest.java +++ b/nflow-tests/src/test/java/io/nflow/tests/MetricsAdminServletTest.java @@ -47,7 +47,8 @@ public void t02_canFetchHealthChecks() { private void makeRequest(URI uri) { Client client = ClientBuilder.newClient(); WebTarget target = client.target(uri); - Response response = target.request(MediaType.APPLICATION_JSON_TYPE).get(); - assertEquals(200, response.getStatus()); + try (Response response = target.request(MediaType.APPLICATION_JSON_TYPE).get()) { + assertEquals(200, response.getStatus()); + } } } diff --git a/nflow-tests/src/test/java/io/nflow/tests/PreviewCreditApplicationWorkflowTest.java b/nflow-tests/src/test/java/io/nflow/tests/PreviewCreditApplicationWorkflowTest.java index f8dd6b118..51c675f2e 100644 --- a/nflow-tests/src/test/java/io/nflow/tests/PreviewCreditApplicationWorkflowTest.java +++ b/nflow-tests/src/test/java/io/nflow/tests/PreviewCreditApplicationWorkflowTest.java @@ -70,8 +70,9 @@ public void t03_moveToGrantLoanState() { UpdateWorkflowInstanceRequest ureq = new UpdateWorkflowInstanceRequest(); ureq.nextActivationTime = now(); ureq.state = "grantLoan"; - Response response = fromClient(workflowInstanceResource, true).path(resp.id).put(ureq); - assertThat(response.getStatusInfo().getFamily(), is(Family.SUCCESSFUL)); + try (Response response = fromClient(workflowInstanceIdResource, true).path(resp.id).put(ureq)) { + assertThat(response.getStatusInfo().getFamily(), is(Family.SUCCESSFUL)); + } } @Test(timeout = 5000) diff --git a/nflow-tests/src/test/java/io/nflow/tests/StatisticsTest.java b/nflow-tests/src/test/java/io/nflow/tests/StatisticsTest.java index 738d2e288..9d54951fe 100644 --- a/nflow-tests/src/test/java/io/nflow/tests/StatisticsTest.java +++ b/nflow-tests/src/test/java/io/nflow/tests/StatisticsTest.java @@ -96,8 +96,9 @@ public void t05_restartServer() throws Exception { public void t06_updateNextActivationToPast() { UpdateWorkflowInstanceRequest req = new UpdateWorkflowInstanceRequest(); req.nextActivationTime = now().minusMinutes(5); - Response response = fromClient(workflowInstanceResource, true).path(resp.id).put(req); - assertThat(response.getStatusInfo().getFamily(), is(Family.SUCCESSFUL)); + try (Response response = fromClient(workflowInstanceIdResource, true).path(resp.id).put(req)) { + assertThat(response.getStatusInfo().getFamily(), is(Family.SUCCESSFUL)); + } } @Test diff --git a/nflow-tests/src/test/java/io/nflow/tests/config/RestClientConfiguration.java b/nflow-tests/src/test/java/io/nflow/tests/config/RestClientConfiguration.java index 811645fc9..d598c5c4f 100644 --- a/nflow-tests/src/test/java/io/nflow/tests/config/RestClientConfiguration.java +++ b/nflow-tests/src/test/java/io/nflow/tests/config/RestClientConfiguration.java @@ -65,6 +65,11 @@ public WebClient workflowInstance() { return baseWebClient().path("workflow-instance"); } + @Bean(name = "workflowInstanceId") + public WebClient workflowInstanceId() { + return baseWebClient().path("workflow-instance/id"); + } + @Bean(name = "workflowDefinition") public WebClient workflowDefinition() { return baseWebClient().path("workflow-definition");