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);