You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2024/03/10 19:22:30 UTC

(camel) 01/02: camel-jbang - Fix generate rest to work with openapi v3

This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 13375cae32d2bf38e7d5bb4db22b75ade8c82a53
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sun Mar 10 20:22:03 2024 +0100

    camel-jbang - Fix generate rest to work with openapi v3
---
 .../camel/dsl/jbang/core/commands/CodeRestGenerator.java       | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/CodeRestGenerator.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/CodeRestGenerator.java
index 7c3e3363e4f..3914748251a 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/CodeRestGenerator.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/CodeRestGenerator.java
@@ -29,6 +29,7 @@ import com.fasterxml.jackson.databind.node.ObjectNode;
 import io.apicurio.datamodels.Library;
 import io.apicurio.datamodels.models.Document;
 import io.apicurio.datamodels.models.ModelType;
+import io.apicurio.datamodels.models.openapi.OpenApiDocument;
 import io.apicurio.datamodels.models.openapi.v30.OpenApi30Document;
 import org.apache.camel.CamelContext;
 import org.apache.camel.generator.openapi.RestDslGenerator;
@@ -75,13 +76,20 @@ public class CodeRestGenerator extends CamelCommand {
 
     @Override
     public Integer doCall() throws Exception {
+        OpenApiDocument doc;
+
         final ObjectNode node = input.endsWith("json") ? readNodeFromJson() : readNodeFromYaml();
         Document source = Library.readDocument(node);
         ModelType mt = ModelType.OPENAPI30;
         if ("3.1".equals(openApiVersion)) {
             mt = ModelType.OPENAPI31;
         }
-        OpenApi30Document doc = (OpenApi30Document) Library.transformDocument(source, mt);
+        if (!source.root().modelType().equals(mt)) {
+            doc = (OpenApiDocument) Library.transformDocument(source, mt);
+        } else {
+            doc = (OpenApiDocument) source;
+        }
+
         Configurator.setRootLevel(Level.OFF);
         try (CamelContext context = new DefaultCamelContext()) {
             String text = null;