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

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


The following commit(s) were added to refs/heads/quarkus-main by this push:
     new 65dbfcfb4e camel-quarkus-openapi-java: alter to use OpenAPIDefinitionIO
65dbfcfb4e is described below

commit 65dbfcfb4ee8b144f528ad6066145f0c5aedfcd8
Author: Zheng Feng <[email protected]>
AuthorDate: Mon Sep 23 21:12:23 2024 +0800

    camel-quarkus-openapi-java: alter to use OpenAPIDefinitionIO
---
 .../java/deployment/OpenApiJavaProcessor.java      | 27 ++++++++++++++--------
 1 file changed, 17 insertions(+), 10 deletions(-)

diff --git 
a/extensions/openapi-java/deployment/src/main/java/org/apache/camel/quarkus/component/openapi/java/deployment/OpenApiJavaProcessor.java
 
b/extensions/openapi-java/deployment/src/main/java/org/apache/camel/quarkus/component/openapi/java/deployment/OpenApiJavaProcessor.java
index 658a67b826..95da4b0e54 100644
--- 
a/extensions/openapi-java/deployment/src/main/java/org/apache/camel/quarkus/component/openapi/java/deployment/OpenApiJavaProcessor.java
+++ 
b/extensions/openapi-java/deployment/src/main/java/org/apache/camel/quarkus/component/openapi/java/deployment/OpenApiJavaProcessor.java
@@ -16,8 +16,6 @@
  */
 package org.apache.camel.quarkus.component.openapi.java.deployment;
 
-import java.io.ByteArrayInputStream;
-import java.nio.charset.StandardCharsets;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -27,7 +25,12 @@ import java.util.function.BiConsumer;
 import java.util.function.BooleanSupplier;
 import java.util.function.Consumer;
 
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.core.JsonFactory;
+import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.JsonSerializer;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializationFeature;
 import io.quarkus.bootstrap.classloading.QuarkusClassLoader;
 import io.quarkus.deployment.Capabilities;
 import io.quarkus.deployment.Capability;
@@ -38,10 +41,10 @@ import io.quarkus.deployment.builditem.FeatureBuildItem;
 import io.quarkus.deployment.builditem.IndexDependencyBuildItem;
 import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
 import 
io.quarkus.smallrye.openapi.deployment.spi.AddToOpenAPIDefinitionBuildItem;
-import io.smallrye.openapi.api.OpenApiConfigImpl;
 import io.smallrye.openapi.api.util.MergeUtil;
-import io.smallrye.openapi.runtime.io.Format;
-import io.smallrye.openapi.runtime.io.OpenApiParser;
+import io.smallrye.openapi.runtime.io.IOContext;
+import io.smallrye.openapi.runtime.io.JsonIO;
+import io.smallrye.openapi.runtime.io.OpenAPIDefinitionIO;
 import io.swagger.v3.core.jackson.mixin.Components31Mixin;
 import io.swagger.v3.core.jackson.mixin.ComponentsMixin;
 import io.swagger.v3.core.jackson.mixin.DateSchemaMixin;
@@ -229,12 +232,16 @@ class CamelRestOASFilter implements OASFilter {
                 clearVendorExtensions(openApi);
             }
 
+            // dump to json
+            final ObjectMapper mapper = new ObjectMapper(new JsonFactory());
+            mapper.enable(SerializationFeature.INDENT_OUTPUT);
+            mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
+
             String jsonContent = 
RestOpenApiSupport.getJsonFromOpenAPIAsString(openApi, bc);
-            try (ByteArrayInputStream stream = new 
ByteArrayInputStream(jsonContent.getBytes(StandardCharsets.UTF_8))) {
-                OpenAPI parsedOpenAPI = OpenApiParser.parse(stream, 
Format.JSON,
-                        new OpenApiConfigImpl(ConfigProvider.getConfig()));
-                MergeUtil.merge(openAPI, parsedOpenAPI);
-            }
+            final JsonNode node = mapper.readTree(jsonContent);
+
+            OpenAPI oai = new 
OpenAPIDefinitionIO(IOContext.forJson(JsonIO.newInstance(null))).readObject(node);
+            MergeUtil.merge(openAPI, oai);
         } catch (Exception e) {
             LOGGER.warn("Error generating OpenAPI from Camel Rest DSL due to: 
{}. This exception is ignored.", e.getMessage(),
                     e);

Reply via email to