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-runtimes.git
The following commit(s) were added to refs/heads/main by this push:
new 065134d38a [Fix #4132] Fixing Json Schema generation (#4133)
065134d38a is described below
commit 065134d38a041f74f715ec5be1fd11ff5fadda63
Author: Francisco Javier Tirado Sarti
<[email protected]>
AuthorDate: Wed Nov 26 14:19:57 2025 +0100
[Fix #4132] Fixing Json Schema generation (#4133)
Signed-off-by: fjtirado <[email protected]>
---
.../workflow/parser/schema/JsonSchemaImpl.java | 19 ++++---------
.../parser/schema/OpenApiModelSchemaGenerator.java | 33 +++++++++++++---------
2 files changed, 25 insertions(+), 27 deletions(-)
diff --git
a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/src/main/java/org/kie/kogito/serverless/workflow/parser/schema/JsonSchemaImpl.java
b/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/src/main/java/org/kie/kogito/serverless/workflow/parser/schema/JsonSchemaImpl.java
index 73cb98abcf..96dfc362c4 100644
---
a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/src/main/java/org/kie/kogito/serverless/workflow/parser/schema/JsonSchemaImpl.java
+++
b/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/src/main/java/org/kie/kogito/serverless/workflow/parser/schema/JsonSchemaImpl.java
@@ -46,28 +46,21 @@ public class JsonSchemaImpl extends SchemaImpl {
private Map<String, Schema> defs;
- private List<Schema.SchemaType> type;
-
@JsonSetter("type")
public void setType(JsonNode typeNode) {
+ List<Schema.SchemaType> types = new ArrayList<>();
if (typeNode.isArray()) {
- List<Schema.SchemaType> types = new ArrayList<>();
for (JsonNode node : typeNode) {
-
types.add(Schema.SchemaType.valueOf(node.asText().toUpperCase()));
+ types.add(from(node));
}
- this.type = types;
} else if (typeNode.isTextual()) {
- this.type = new ArrayList<>();
-
this.type.add(Schema.SchemaType.valueOf(typeNode.asText().toUpperCase()));
+ types.add(from(typeNode));
}
+ super.setType(types);
}
- public List<Schema.SchemaType> getType() {
- return type;
- }
-
- public void setType(List<Schema.SchemaType> type) {
- this.type = type;
+ private static SchemaType from(JsonNode node) {
+ return Schema.SchemaType.valueOf(node.asText().toUpperCase());
}
@JsonSetter("$defs")
diff --git
a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/src/main/java/org/kie/kogito/serverless/workflow/parser/schema/OpenApiModelSchemaGenerator.java
b/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/src/main/java/org/kie/kogito/serverless/workflow/parser/schema/OpenApiModelSchemaGenerator.java
index 38f4c71217..6e0fd92b72 100644
---
a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/src/main/java/org/kie/kogito/serverless/workflow/parser/schema/OpenApiModelSchemaGenerator.java
+++
b/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/src/main/java/org/kie/kogito/serverless/workflow/parser/schema/OpenApiModelSchemaGenerator.java
@@ -132,26 +132,31 @@ public final class OpenApiModelSchemaGenerator {
return id + suffix;
}
+ private final static String PROCESS_PREFIX = "Process - ";
+
private static void processOperation(Map<String, Schema> schemas,
Operation operation) {
if (operation != null) {
List<String> tags = operation.getTags();
if (tags != null) {
for (String tag : tags) {
- if (operation.getRequestBody() != null) {
- Schema schema = schemas.get(getSchemaName(tag,
INPUT_SUFFIX));
- if (schema != null) {
-
getMediaTypes(operation.getRequestBody().getContent()).stream().filter(OpenApiModelSchemaGenerator::isInput).forEach(mediaType
-> mediaType.setSchema(schema));
+ if (tag.startsWith(PROCESS_PREFIX)) {
+ String processName =
tag.substring(PROCESS_PREFIX.length());
+ if (operation.getRequestBody() != null) {
+ Schema schema =
schemas.get(getSchemaName(processName, INPUT_SUFFIX));
+ if (schema != null) {
+
getMediaTypes(operation.getRequestBody().getContent()).stream().filter(OpenApiModelSchemaGenerator::isInput).forEach(mediaType
-> mediaType.setSchema(schema));
+ }
}
- }
- if (operation.getResponses() != null &&
operation.getResponses().getAPIResponses() != null) {
- Schema schema = schemas.get(getSchemaName(tag,
OUTPUT_SUFFIX));
- if (schema != null) {
- for (APIResponse response :
operation.getResponses().getAPIResponses().values()) {
- Content content = response.getContent();
- if (content == null) {
-
response.setContent(OASFactory.createContent().addMediaType("application/json",
OASFactory.createMediaType().schema(schema)));
- } else {
-
getMediaTypes(content).stream().filter(OpenApiModelSchemaGenerator::isOutput).forEach(mediaType
-> mediaType.setSchema(schema));
+ if (operation.getResponses() != null &&
operation.getResponses().getAPIResponses() != null) {
+ Schema schema =
schemas.get(getSchemaName(processName, OUTPUT_SUFFIX));
+ if (schema != null) {
+ for (APIResponse response :
operation.getResponses().getAPIResponses().values()) {
+ Content content = response.getContent();
+ if (content == null) {
+
response.setContent(OASFactory.createContent().addMediaType("application/json",
OASFactory.createMediaType().schema(schema)));
+ } else {
+
getMediaTypes(content).stream().filter(OpenApiModelSchemaGenerator::isOutput).forEach(mediaType
-> mediaType.setSchema(schema));
+ }
}
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]