This is an automated email from the ASF dual-hosted git repository.
fjtiradosarti pushed a commit to branch main
in repository
https://gitbox.apache.org/repos/asf/incubator-kie-kogito-examples.git
The following commit(s) were added to refs/heads/main by this push:
new 0495d809c Updating_examples (#2005)
0495d809c is described below
commit 0495d809c8415e10b2eac2ce759b7cbf4eb4d109
Author: Francisco Javier Tirado Sarti
<[email protected]>
AuthorDate: Tue Aug 27 09:42:39 2024 +0200
Updating_examples (#2005)
This illustrate the usage of funcions that returns not json objects
---
.../README.md | 9 ++----
.../src/main/resources/expression.sw.json | 37 ++++++++--------------
.../org/kie/kogito/examples/ExpressionRestIT.java | 2 +-
.../src/main/resources/application.properties | 1 +
.../main/resources/fahrenheit-to-celsius.sw.json | 3 ++
.../src/main/resources/specs/multiplication.yaml | 13 +++-----
.../kogito/serverless/OperationsMockService.java | 8 ++---
.../sw/temp/multiplication/OperationResource.java | 25 +++------------
.../src/main/resources/application.properties | 1 +
.../temp/multiplication/OperationResourceIT.java | 12 ++++---
10 files changed, 41 insertions(+), 70 deletions(-)
diff --git
a/serverless-workflow-examples/serverless-workflow-expression-quarkus/README.md
b/serverless-workflow-examples/serverless-workflow-expression-quarkus/README.md
index 9c795c53f..8ed7e2cd9 100644
---
a/serverless-workflow-examples/serverless-workflow-expression-quarkus/README.md
+++
b/serverless-workflow-examples/serverless-workflow-expression-quarkus/README.md
@@ -5,7 +5,7 @@
This example contains a simple workflow service that illustrate JQ expression
usage.
The service is described using JSON format as defined in the
[CNCF Serverless Workflow
specification](https://github.com/serverlessworkflow/specification).
-The service accepts an array of complex numbers (x being the real coordinate
and y the imaginary one) and return the max real coordinate.
+The service accepts an array of complex numbers (x being the real coordinate
and y the imaginary one) and return the square of the max real coordinate.
## Installing and Running
@@ -84,11 +84,6 @@ curl -X POST -H 'Content-Type:application/json' -H
'Accept:application/json' -d
```
-In Quarkus you should see the log message printed:
-
-```text
-4
-```
And the returned data will be something similar to
@@ -96,7 +91,7 @@ And the returned data will be something similar to
{
"id": "9f30a25e-61d4-4e80-bc7c-eb04db51564c",
"workflowdata": {
- "result": 4
+ "result": 2.0
}
}
```
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 dcf80ae8c..cc061519c 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" : {
+ "toStateData": ".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 9e17620fe..1a1b5152d 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 @@ class ExpressionRestIT {
.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 ab2c443a8..89e9b5f97 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 a9439c7f1..5c2b746f1 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 f9f76d614..c7f75978b 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 f82871273..1feeb3786 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<String, String> 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 class OperationsMockService implements
QuarkusTestResourceLifecycleManage
}
}
- 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 376d5ed89..6ed4b7226 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
org.eclipse.microprofile.openapi.annotations.responses.APIResponseSchema;
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 26552ec40..cc4d75777 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 b2066fa65..0b331059c 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 org.junit.jupiter.api.Test;
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));
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]