diff --git a/serverless-workflow-examples/serverless-workflow-expression-quarkus/src/main/resources/expression.sw.json b/serverless-workflow-examples/serverless-workflow-expression-quarkus/src/main/resources/expression.sw.json index dcf80ae8ce..4e3323e616 100644 --- a/serverless-workflow-examples/serverless-workflow-expression-quarkus/src/main/resources/expression.sw.json +++ b/serverless-workflow-examples/serverless-workflow-expression-quarkus/src/main/resources/expression.sw.json @@ -2,24 +2,14 @@ "id": "expression", "version": "1.0", "name": "Workflow Expression example", - "constants" : { - "Dog" : { - "castellano" : "perro", - "leones": "perru", - "gallego" : "can", - "aragones" : "cocho", - "catalan" : "gos", - "vasco": "txakurra" - } - }, "dataInputSchema" : "schema/expression.json", "description": "An example of how to use a JQ expression assignment", - "start": "squareState", "extensions" : [ { "extensionid": "workflow-output-schema", "outputSchema": "schema/result.json" } ], + "start": "max", "functions": [ { "name": "max", @@ -27,14 +17,14 @@ "operation": "{max: .numbers | max_by(.x), min: .numbers | min_by(.y)}" }, { - "name": "printMessage", - "type": "custom", - "operation": "sysout" + "name": "square", + "type": "expression", + "operation": ".number | sqrt" } ], "states": [ { - "name": "squareState", + "name": "max", "type": "operation", "actions": [ { @@ -48,23 +38,22 @@ } } ], - "transition": "finish" + "transition": "square" }, { - "name": "finish", + "name": "square", "type": "operation", "stateDataFilter": { - "input": "{result: .number}" + "output": "{result}" }, "actions": [ { - "name": "printAction", - "functionRef": { - "refName": "printMessage", - "arguments": { - "message": ".result" + "name": "square", + "functionRef": "square" + , + "actionDataFilter" : { + "results" : "{result: .}" } - } } ], "end": true diff --git a/serverless-workflow-examples/serverless-workflow-expression-quarkus/src/test/java/org/kie/kogito/examples/ExpressionRestIT.java b/serverless-workflow-examples/serverless-workflow-expression-quarkus/src/test/java/org/kie/kogito/examples/ExpressionRestIT.java index 9e17620fed..1a1b5152d2 100644 --- a/serverless-workflow-examples/serverless-workflow-expression-quarkus/src/test/java/org/kie/kogito/examples/ExpressionRestIT.java +++ b/serverless-workflow-examples/serverless-workflow-expression-quarkus/src/test/java/org/kie/kogito/examples/ExpressionRestIT.java @@ -39,7 +39,7 @@ void testErrorRest() { .post("/expression") .then() .statusCode(201) - .body("workflowdata.result", is(4)) + .body("workflowdata.result", is(2.0f)) .body("workflowdata.number", nullValue()); } } diff --git a/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow/src/main/resources/application.properties b/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow/src/main/resources/application.properties index ab2c443a8e..89e9b5f97c 100644 --- a/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow/src/main/resources/application.properties +++ b/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow/src/main/resources/application.properties @@ -22,6 +22,7 @@ quarkus.native.native-image-xmx=8g # OpenAPI Properties quarkus.swagger-ui.always-include=true +quarkus.devservices.enabled=false # OpenApi Client Properties quarkus.rest-client.subtraction_yaml.url=http://localhost:8181 diff --git a/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow/src/main/resources/fahrenheit-to-celsius.sw.json b/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow/src/main/resources/fahrenheit-to-celsius.sw.json index a9439c7f1d..5c2b746f12 100644 --- a/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow/src/main/resources/fahrenheit-to-celsius.sw.json +++ b/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow/src/main/resources/fahrenheit-to-celsius.sw.json @@ -43,6 +43,9 @@ "functionRef": { "refName": "multiplication", "arguments": "{ leftElement: .difference, rightElement: .multiplyValue }" + }, + "actionDataFilter" : { + "results" : "{product: .}" } } ], diff --git a/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow/src/main/resources/specs/multiplication.yaml b/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow/src/main/resources/specs/multiplication.yaml index f9f76d6145..c7f75978b6 100644 --- a/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow/src/main/resources/specs/multiplication.yaml +++ b/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow/src/main/resources/specs/multiplication.yaml @@ -40,14 +40,11 @@ paths: responses: "200": description: OK - content: - application/json: - schema: - type: object - properties: - product: - format: float - type: number + content: + text/plain: + schema: + type: number + format: float components: schemas: MultiplicationOperation: diff --git a/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow/src/test/java/org/kie/kogito/serverless/OperationsMockService.java b/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow/src/test/java/org/kie/kogito/serverless/OperationsMockService.java index f82871273c..1feeb37869 100644 --- a/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow/src/test/java/org/kie/kogito/serverless/OperationsMockService.java +++ b/serverless-workflow-examples/serverless-workflow-temperature-conversion/conversion-workflow/src/test/java/org/kie/kogito/serverless/OperationsMockService.java @@ -41,10 +41,10 @@ public class OperationsMockService implements QuarkusTestResourceLifecycleManage public Map start() { multiplicationService = this.startServer(8282, - "{ \"product\": 37.808 }"); + "37.808", "text/plain"); subtractionService = this.startServer(8181, - "{ \"difference\": 68.0 }"); + "{ \"difference\": 68.0 }", "application/json"); return Collections.emptyMap(); } @@ -58,13 +58,13 @@ public void stop() { } } - private WireMockServer startServer(final int port, final String response) { + private WireMockServer startServer(final int port, final String response, final String contentType) { final WireMockServer server = new WireMockServer(port); server.start(); server.stubFor(post(urlEqualTo("/")) .withHeader(CloudEventExtensionConstants.PROCESS_ID, WireMock.matching(".*")) .willReturn(aResponse() - .withHeader("Content-Type", "application/json") + .withHeader("Content-Type", contentType) .withBody(response))); return server; } diff --git a/serverless-workflow-examples/serverless-workflow-temperature-conversion/multiplication-service/src/main/java/org/kie/kogito/examples/sw/temp/multiplication/OperationResource.java b/serverless-workflow-examples/serverless-workflow-temperature-conversion/multiplication-service/src/main/java/org/kie/kogito/examples/sw/temp/multiplication/OperationResource.java index 376d5ed899..6ed4b72264 100644 --- a/serverless-workflow-examples/serverless-workflow-temperature-conversion/multiplication-service/src/main/java/org/kie/kogito/examples/sw/temp/multiplication/OperationResource.java +++ b/serverless-workflow-examples/serverless-workflow-temperature-conversion/multiplication-service/src/main/java/org/kie/kogito/examples/sw/temp/multiplication/OperationResource.java @@ -31,31 +31,14 @@ import io.quarkus.runtime.annotations.RegisterForReflection; @Path("/") -@Produces(MediaType.APPLICATION_JSON) -@Consumes(MediaType.APPLICATION_JSON) public class OperationResource { @POST - @APIResponseSchema(value = OperationResource.Result.class, responseDescription = "MultiplicationResult", responseCode = "200") + @Produces(MediaType.TEXT_PLAIN) + @Consumes(MediaType.APPLICATION_JSON) public Response doOperation(@NotNull MultiplicationOperation operation) { - return Response.ok(new Result(operation.getLeftElement() * operation.getRightElement())).build(); + return Response.ok(operation.getLeftElement() * operation.getRightElement(), MediaType.TEXT_PLAIN).build(); } - @RegisterForReflection - public static final class Result { - - float product; - - public Result() { - } - - public Result(float product) { - this.product = product; - } - - public float getProduct() { - return product; - } - - } + } diff --git a/serverless-workflow-examples/serverless-workflow-temperature-conversion/multiplication-service/src/main/resources/application.properties b/serverless-workflow-examples/serverless-workflow-temperature-conversion/multiplication-service/src/main/resources/application.properties index 26552ec40d..cc4d757771 100644 --- a/serverless-workflow-examples/serverless-workflow-temperature-conversion/multiplication-service/src/main/resources/application.properties +++ b/serverless-workflow-examples/serverless-workflow-temperature-conversion/multiplication-service/src/main/resources/application.properties @@ -21,6 +21,7 @@ # quarkus.package.type=fast-jar quarkus.native.native-image-xmx=8g quarkus.swagger-ui.always-include=true +quarkus.devservices.enabled=false # profile to pack this example into a container, to use it execute activate the maven container profile, -Dcontainer %container.quarkus.container-image.build=true diff --git a/serverless-workflow-examples/serverless-workflow-temperature-conversion/multiplication-service/src/test/java/org/kie/kogito/examples/sw/temp/multiplication/OperationResourceIT.java b/serverless-workflow-examples/serverless-workflow-temperature-conversion/multiplication-service/src/test/java/org/kie/kogito/examples/sw/temp/multiplication/OperationResourceIT.java index b2066fa655..0b331059cf 100644 --- a/serverless-workflow-examples/serverless-workflow-temperature-conversion/multiplication-service/src/test/java/org/kie/kogito/examples/sw/temp/multiplication/OperationResourceIT.java +++ b/serverless-workflow-examples/serverless-workflow-temperature-conversion/multiplication-service/src/test/java/org/kie/kogito/examples/sw/temp/multiplication/OperationResourceIT.java @@ -22,6 +22,7 @@ import io.quarkus.test.junit.QuarkusIntegrationTest; import io.restassured.http.ContentType; +import io.restassured.response.Response; import static io.restassured.RestAssured.given; import static org.hamcrest.CoreMatchers.is; @@ -32,13 +33,14 @@ class OperationResourceIT { @Test void testRestExample() { - final OperationResource.Result result = given() + Response result = given() .contentType(ContentType.JSON) - .when() .body(new MultiplicationOperation(2, 2)) - .post("/") .then() - .statusCode(200).extract().as(OperationResource.Result.class); - assertThat(result.getProduct(), is(4f)); + .response().contentType(ContentType.TEXT) + .statusCode(200) + .when() + .post("/"); + assertThat(Float.parseFloat(result.asString()), is(4f)); } }