You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by gi...@apache.org on 2023/05/27 02:43:07 UTC

[camel-quarkus] 09/12: Fixed openapi-java and rest-openapi by introducing support-swgger

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

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

commit da1da005e4bd8d48195b35b19d60ac109e763f08
Author: JiriOndrusek <on...@gmail.com>
AuthorDate: Tue May 23 11:04:44 2023 +0200

    Fixed openapi-java and rest-openapi by introducing support-swgger
---
 extensions-support/pom.xml                         |  1 +
 .../swagger}/deployment/pom.xml                    | 16 ++++-----
 .../deployment/SupportSwaggerProcessor.java        | 38 ++++++++++++++++++++++
 extensions-support/swagger/pom.xml                 | 37 +++++++++++++++++++++
 .../swagger/runtime}/pom.xml                       | 30 ++++++++++-------
 .../runtime/graal/SwaggerSubstitutions.java        | 34 ++++++++++++++-----
 .../main/resources/META-INF/quarkus-extension.yaml | 27 +++++++++++++++
 extensions/openapi-java/deployment/pom.xml         |  4 +++
 .../java/deployment/OpenApiJavaProcessor.java      |  5 ---
 extensions/openapi-java/runtime/pom.xml            |  4 +++
 ...ns.java => RestOpenApiReaderSubstitutions.java} | 12 -------
 extensions/rest-openapi/deployment/pom.xml         |  4 +++
 extensions/rest-openapi/runtime/pom.xml            |  4 +++
 poms/bom/pom.xml                                   | 30 +++++++++++++++++
 poms/bom/src/main/generated/flattened-full-pom.xml | 30 +++++++++++++++++
 .../src/main/generated/flattened-reduced-pom.xml   | 30 +++++++++++++++++
 .../generated/flattened-reduced-verbose-pom.xml    | 30 +++++++++++++++++
 17 files changed, 290 insertions(+), 46 deletions(-)

diff --git a/extensions-support/pom.xml b/extensions-support/pom.xml
index 6bda7f3c52..718f0ce64e 100644
--- a/extensions-support/pom.xml
+++ b/extensions-support/pom.xml
@@ -56,6 +56,7 @@
         <module>reactor-netty</module>
         <module>retrofit</module>
         <module>spring</module>
+        <module>swagger</module>
         <module>webhook</module>
         <module>xalan</module>
     </modules>
diff --git a/extensions/rest-openapi/deployment/pom.xml b/extensions-support/swagger/deployment/pom.xml
similarity index 79%
copy from extensions/rest-openapi/deployment/pom.xml
copy to extensions-support/swagger/deployment/pom.xml
index cd44a41501..221c804534 100644
--- a/extensions/rest-openapi/deployment/pom.xml
+++ b/extensions-support/swagger/deployment/pom.xml
@@ -21,26 +21,22 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.camel.quarkus</groupId>
-        <artifactId>camel-quarkus-rest-openapi-parent</artifactId>
+        <artifactId>camel-quarkus-support-swagger-parent</artifactId>
         <version>3.0.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
-    <artifactId>camel-quarkus-rest-openapi-deployment</artifactId>
-    <name>Camel Quarkus :: REST OpenApi :: Deployment</name>
+    <artifactId>camel-quarkus-support-swagger-deployment</artifactId>
+    <name>Camel Quarkus :: Support :: Swagger :: Deployment</name>
 
     <dependencies>
         <dependency>
-            <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-core-deployment</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-rest-deployment</artifactId>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-core-deployment</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-rest-openapi</artifactId>
+            <artifactId>camel-quarkus-support-swagger</artifactId>
         </dependency>
     </dependencies>
 
diff --git a/extensions-support/swagger/deployment/src/main/java/org/apache/camel/quarkus/support/swagger/deployment/SupportSwaggerProcessor.java b/extensions-support/swagger/deployment/src/main/java/org/apache/camel/quarkus/support/swagger/deployment/SupportSwaggerProcessor.java
new file mode 100644
index 0000000000..7bebf10ec1
--- /dev/null
+++ b/extensions-support/swagger/deployment/src/main/java/org/apache/camel/quarkus/support/swagger/deployment/SupportSwaggerProcessor.java
@@ -0,0 +1,38 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.quarkus.support.swagger.deployment;
+
+import io.quarkus.deployment.annotations.BuildProducer;
+import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
+import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
+import org.jboss.jandex.ClassInfo;
+import org.jboss.jandex.IndexView;
+
+class SupporSwaggerProcessor {
+
+    @BuildStep
+    void reflectiveClasses(BuildProducer<ReflectiveClassBuildItem> reflectiveClasses, CombinedIndexBuildItem combinedIndex) {
+        IndexView index = combinedIndex.getIndex();
+
+        index.getKnownClasses().stream().filter(ci -> ci.name().packagePrefix().startsWith("io.swagger.models") ||
+                ci.name().packagePrefix().startsWith("io.swagger.v3.oas.models"))
+                .map(ClassInfo::toString)
+                .forEach(name -> reflectiveClasses.produce(ReflectiveClassBuildItem.builder(name).methods().build()));
+    }
+
+}
diff --git a/extensions-support/swagger/pom.xml b/extensions-support/swagger/pom.xml
new file mode 100644
index 0000000000..cd70af8586
--- /dev/null
+++ b/extensions-support/swagger/pom.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one or more
+    contributor license agreements.  See the NOTICE file distributed with
+    this work for additional information regarding copyright ownership.
+    The ASF licenses this file to You under the Apache License, Version 2.0
+    (the "License"); you may not use this file except in compliance with
+    the License.  You may obtain a copy of the License at
+
+         http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing, software
+    distributed under the License is distributed on an "AS IS" BASIS,
+    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+    See the License for the specific language governing permissions and
+    limitations under the License.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-extensions-support</artifactId>
+        <version>3.0.0-SNAPSHOT</version>
+        <relativePath>../pom.xml</relativePath>
+    </parent>
+
+    <artifactId>camel-quarkus-support-swagger-parent</artifactId>
+    <name>Camel Quarkus :: Support :: Swagger</name>
+    <packaging>pom</packaging>
+
+    <modules>
+        <module>deployment</module>
+        <module>runtime</module>
+    </modules>
+</project>
diff --git a/extensions/rest-openapi/deployment/pom.xml b/extensions-support/swagger/runtime/pom.xml
similarity index 71%
copy from extensions/rest-openapi/deployment/pom.xml
copy to extensions-support/swagger/runtime/pom.xml
index cd44a41501..fa52375b2b 100644
--- a/extensions/rest-openapi/deployment/pom.xml
+++ b/extensions-support/swagger/runtime/pom.xml
@@ -21,31 +21,40 @@
     <modelVersion>4.0.0</modelVersion>
     <parent>
         <groupId>org.apache.camel.quarkus</groupId>
-        <artifactId>camel-quarkus-rest-openapi-parent</artifactId>
+        <artifactId>camel-quarkus-support-swagger-parent</artifactId>
         <version>3.0.0-SNAPSHOT</version>
         <relativePath>../pom.xml</relativePath>
     </parent>
 
-    <artifactId>camel-quarkus-rest-openapi-deployment</artifactId>
-    <name>Camel Quarkus :: REST OpenApi :: Deployment</name>
+    <artifactId>camel-quarkus-support-swagger</artifactId>
+    <name>Camel Quarkus :: Support :: Swagger :: Runtime</name>
+
+    <properties>
+        <camel.quarkus.jvmSince>1.0.0</camel.quarkus.jvmSince>
+        <camel.quarkus.nativeSince>1.0.0</camel.quarkus.nativeSince>
+    </properties>
 
     <dependencies>
         <dependency>
-            <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-core-deployment</artifactId>
+            <groupId>io.quarkus</groupId>
+            <artifactId>quarkus-core</artifactId>
         </dependency>
-        <dependency>
-            <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-rest-deployment</artifactId>
+         <dependency>
+            <groupId>io.swagger.core.v3</groupId>
+            <artifactId>swagger-models</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.apache.camel.quarkus</groupId>
-            <artifactId>camel-quarkus-rest-openapi</artifactId>
+            <groupId>io.swagger.parser.v3</groupId>
+            <artifactId>swagger-parser</artifactId>
         </dependency>
     </dependencies>
 
     <build>
         <plugins>
+            <plugin>
+                <groupId>io.quarkus</groupId>
+                <artifactId>quarkus-extension-maven-plugin</artifactId>
+            </plugin>
             <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                 <artifactId>maven-compiler-plugin</artifactId>
@@ -61,5 +70,4 @@
             </plugin>
         </plugins>
     </build>
-
 </project>
diff --git a/extensions/openapi-java/runtime/src/main/java/org/apache/camel/quarkus/component/openapi/java/graal/OpenapiJavaSubstitutions.java b/extensions-support/swagger/runtime/src/main/java/org/apache/camel/quarkus/support/swagger/runtime/graal/SwaggerSubstitutions.java
similarity index 53%
copy from extensions/openapi-java/runtime/src/main/java/org/apache/camel/quarkus/component/openapi/java/graal/OpenapiJavaSubstitutions.java
copy to extensions-support/swagger/runtime/src/main/java/org/apache/camel/quarkus/support/swagger/runtime/graal/SwaggerSubstitutions.java
index 8ac8b23f13..c48cd6c7af 100644
--- a/extensions/openapi-java/runtime/src/main/java/org/apache/camel/quarkus/component/openapi/java/graal/OpenapiJavaSubstitutions.java
+++ b/extensions-support/swagger/runtime/src/main/java/org/apache/camel/quarkus/support/swagger/runtime/graal/SwaggerSubstitutions.java
@@ -14,24 +14,42 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.camel.quarkus.component.openapi.java.graal;
+package org.apache.camel.quarkus.support.swagger.runtime.graal;
 
 import java.util.Calendar;
 import java.util.List;
 
 import com.oracle.svm.core.annotate.Substitute;
 import com.oracle.svm.core.annotate.TargetClass;
-import io.swagger.v3.oas.models.media.Schema;
-import org.apache.camel.openapi.RestOpenApiReader;
+import io.swagger.parser.OpenAPIParser;
+import io.swagger.v3.parser.OpenAPIV3Parser;
+import io.swagger.v3.parser.core.extensions.SwaggerParserExtension;
+import io.swagger.v3.parser.core.models.AuthorizationValue;
+import io.swagger.v3.parser.core.models.ParseOptions;
+import io.swagger.v3.parser.core.models.SwaggerParseResult;
 
-final class OpenapiJavaSubstitutions {
+final class SwaggerSubstitutions {
 }
 
-@TargetClass(RestOpenApiReader.class)
-final class RestOpenApiReaderSubstitutions {
+@TargetClass(OpenAPIParser.class)
+final class OpenAPIParserSubstitutions {
+
     @Substitute
-    private static void convertAndSetItemsEnum(final Schema items, final List<String> allowableValues, final Class<?> type) {
-        throw new UnsupportedOperationException("RestOpenApiReader::convertAndSetItemsEnum should not be invoked");
+    public SwaggerParseResult readLocation(String url, List<AuthorizationValue> auth, ParseOptions options) {
+        if (url.startsWith("resource:")) {
+            url = url.replaceFirst("resource:", "");
+        }
+
+        SwaggerParseResult output = null;
+
+        for (SwaggerParserExtension extension : OpenAPIV3Parser.getExtensions()) {
+            output = extension.readLocation(url, auth, options);
+            if (output != null && output.getOpenAPI() != null) {
+                return output;
+            }
+        }
+
+        return output;
     }
 }
 
diff --git a/extensions-support/swagger/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions-support/swagger/runtime/src/main/resources/META-INF/quarkus-extension.yaml
new file mode 100644
index 0000000000..3a5a6f8553
--- /dev/null
+++ b/extensions-support/swagger/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -0,0 +1,27 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+---
+name: "Camel Quarkus Support Swagger"
+description: "Camel Quarkus Support Swagger"
+metadata:
+  unlisted: true
+  keywords:
+  - "camel"
+  guide: "https://quarkus.io/guides/camel"
+  categories:
+  - "integration"
diff --git a/extensions/openapi-java/deployment/pom.xml b/extensions/openapi-java/deployment/pom.xml
index 3e31d497a4..cc70ffed97 100644
--- a/extensions/openapi-java/deployment/pom.xml
+++ b/extensions/openapi-java/deployment/pom.xml
@@ -42,6 +42,10 @@
             <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-openapi-java</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-swagger-deployment</artifactId>
+        </dependency>
         <dependency>
             <groupId>io.quarkus</groupId>
             <artifactId>quarkus-resteasy</artifactId>
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 fc15ddc124..e46a387cf7 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
@@ -100,11 +100,6 @@ class OpenApiJavaProcessor {
         index.getAllKnownSubclasses(SCHEMA).stream().map(ClassInfo::toString)
                 .forEach(name -> reflectiveClasses.produce(ReflectiveClassBuildItem.builder(name).methods().build()));
 
-        index.getKnownClasses().stream().filter(ci -> ci.name().packagePrefix().startsWith("io.swagger.models") ||
-                ci.name().packagePrefix().startsWith("io.swagger.v3.oas.models"))
-                .map(ClassInfo::toString)
-                .forEach(name -> reflectiveClasses.produce(ReflectiveClassBuildItem.builder(name).methods().build()));
-
         reflectiveClasses.produce(ReflectiveClassBuildItem.builder(Discriminator.class).build());
     }
 
diff --git a/extensions/openapi-java/runtime/pom.xml b/extensions/openapi-java/runtime/pom.xml
index 2d517f4256..c231957ddd 100644
--- a/extensions/openapi-java/runtime/pom.xml
+++ b/extensions/openapi-java/runtime/pom.xml
@@ -44,6 +44,10 @@
             <groupId>org.apache.camel</groupId>
             <artifactId>camel-openapi-java</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-swagger</artifactId>
+        </dependency>
         <dependency>
             <groupId>org.graalvm.nativeimage</groupId>
             <artifactId>svm</artifactId>
diff --git a/extensions/openapi-java/runtime/src/main/java/org/apache/camel/quarkus/component/openapi/java/graal/OpenapiJavaSubstitutions.java b/extensions/openapi-java/runtime/src/main/java/org/apache/camel/quarkus/component/openapi/java/graal/RestOpenApiReaderSubstitutions.java
similarity index 83%
rename from extensions/openapi-java/runtime/src/main/java/org/apache/camel/quarkus/component/openapi/java/graal/OpenapiJavaSubstitutions.java
rename to extensions/openapi-java/runtime/src/main/java/org/apache/camel/quarkus/component/openapi/java/graal/RestOpenApiReaderSubstitutions.java
index 8ac8b23f13..fe56946efa 100644
--- a/extensions/openapi-java/runtime/src/main/java/org/apache/camel/quarkus/component/openapi/java/graal/OpenapiJavaSubstitutions.java
+++ b/extensions/openapi-java/runtime/src/main/java/org/apache/camel/quarkus/component/openapi/java/graal/RestOpenApiReaderSubstitutions.java
@@ -16,7 +16,6 @@
  */
 package org.apache.camel.quarkus.component.openapi.java.graal;
 
-import java.util.Calendar;
 import java.util.List;
 
 import com.oracle.svm.core.annotate.Substitute;
@@ -24,9 +23,6 @@ import com.oracle.svm.core.annotate.TargetClass;
 import io.swagger.v3.oas.models.media.Schema;
 import org.apache.camel.openapi.RestOpenApiReader;
 
-final class OpenapiJavaSubstitutions {
-}
-
 @TargetClass(RestOpenApiReader.class)
 final class RestOpenApiReaderSubstitutions {
     @Substitute
@@ -34,11 +30,3 @@ final class RestOpenApiReaderSubstitutions {
         throw new UnsupportedOperationException("RestOpenApiReader::convertAndSetItemsEnum should not be invoked");
     }
 }
-
-@TargetClass(Calendar.Builder.class)
-final class CalendarBuilderSubstitution {
-    @Substitute
-    public Calendar build() {
-        throw new UnsupportedOperationException("Calendar::build is not supported");
-    }
-}
diff --git a/extensions/rest-openapi/deployment/pom.xml b/extensions/rest-openapi/deployment/pom.xml
index cd44a41501..79cde72597 100644
--- a/extensions/rest-openapi/deployment/pom.xml
+++ b/extensions/rest-openapi/deployment/pom.xml
@@ -42,6 +42,10 @@
             <groupId>org.apache.camel.quarkus</groupId>
             <artifactId>camel-quarkus-rest-openapi</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-swagger-deployment</artifactId>
+        </dependency>
     </dependencies>
 
     <build>
diff --git a/extensions/rest-openapi/runtime/pom.xml b/extensions/rest-openapi/runtime/pom.xml
index 8ac9a0baec..f7afba2f3d 100644
--- a/extensions/rest-openapi/runtime/pom.xml
+++ b/extensions/rest-openapi/runtime/pom.xml
@@ -47,6 +47,10 @@
             <groupId>org.apache.camel</groupId>
             <artifactId>camel-rest-openapi</artifactId>
         </dependency>
+        <dependency>
+            <groupId>org.apache.camel.quarkus</groupId>
+            <artifactId>camel-quarkus-support-swagger</artifactId>
+        </dependency>
     </dependencies>
 
     <build>
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 01d056c946..6d61fc438d 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -5510,6 +5510,16 @@
                 <artifactId>camel-quarkus-support-spring-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-support-swagger</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
+            <dependency>
+                <groupId>org.apache.camel.quarkus</groupId>
+                <artifactId>camel-quarkus-support-swagger-deployment</artifactId>
+                <version>${camel-quarkus.version}</version>
+            </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-support-webhook</artifactId>
@@ -6315,6 +6325,26 @@
                 <artifactId>smallrye-reactive-messaging-camel</artifactId>
                 <version>${smallrye.reactive.messaging.camel.version}</version>
             </dependency>
+            <dependency>
+                <groupId>io.swagger.core.v3</groupId>
+                <artifactId>swagger-models</artifactId>
+                <version>${swagger-openapi3-version}</version>
+            </dependency>
+            <dependency>
+                <groupId>io.swagger.parser.v3</groupId>
+                <artifactId>swagger-parser</artifactId>
+                <version>${swagger-openapi3-java-parser-version}</version>
+                <exclusions>
+                    <exclusion>
+                        <groupId>com.google.code.findbugs</groupId>
+                        <artifactId>jsr305</artifactId>
+                    </exclusion>
+                    <exclusion>
+                        <groupId>org.checkerframework</groupId>
+                        <artifactId>checker-qual</artifactId>
+                    </exclusion>
+                </exclusions>
+            </dependency>
             <dependency>
                 <groupId>jakarta.jms</groupId>
                 <artifactId>jakarta.jms-api</artifactId>
diff --git a/poms/bom/src/main/generated/flattened-full-pom.xml b/poms/bom/src/main/generated/flattened-full-pom.xml
index beab4a6b9a..e7cf02f74e 100644
--- a/poms/bom/src/main/generated/flattened-full-pom.xml
+++ b/poms/bom/src/main/generated/flattened-full-pom.xml
@@ -5436,6 +5436,16 @@
         <artifactId>camel-quarkus-support-spring-deployment</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
         <version>3.0.0-SNAPSHOT</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
       </dependency>
+      <dependency>
+        <groupId>org.apache.camel.quarkus</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <artifactId>camel-quarkus-support-swagger</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <version>3.0.0-SNAPSHOT</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.quarkus</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <artifactId>camel-quarkus-support-swagger-deployment</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <version>3.0.0-SNAPSHOT</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+      </dependency>
       <dependency>
         <groupId>org.apache.camel.quarkus</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
         <artifactId>camel-quarkus-support-webhook</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
@@ -6238,6 +6248,26 @@
         <artifactId>smallrye-reactive-messaging-camel</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
         <version>4.5.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
       </dependency>
+      <dependency>
+        <groupId>io.swagger.core.v3</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <artifactId>swagger-models</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <version>2.2.9</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+      </dependency>
+      <dependency>
+        <groupId>io.swagger.parser.v3</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <artifactId>swagger-parser</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <version>2.1.13</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <exclusions>
+          <exclusion>
+            <groupId>com.google.code.findbugs</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+            <artifactId>jsr305</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+          </exclusion>
+          <exclusion>
+            <groupId>org.checkerframework</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+            <artifactId>checker-qual</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+          </exclusion>
+        </exclusions>
+      </dependency>
       <dependency>
         <groupId>jakarta.jms</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
         <artifactId>jakarta.jms-api</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
diff --git a/poms/bom/src/main/generated/flattened-reduced-pom.xml b/poms/bom/src/main/generated/flattened-reduced-pom.xml
index 69f5150f09..345573d1a1 100644
--- a/poms/bom/src/main/generated/flattened-reduced-pom.xml
+++ b/poms/bom/src/main/generated/flattened-reduced-pom.xml
@@ -5436,6 +5436,16 @@
         <artifactId>camel-quarkus-support-spring-deployment</artifactId>
         <version>3.0.0-SNAPSHOT</version>
       </dependency>
+      <dependency>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-support-swagger</artifactId>
+        <version>3.0.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-support-swagger-deployment</artifactId>
+        <version>3.0.0-SNAPSHOT</version>
+      </dependency>
       <dependency>
         <groupId>org.apache.camel.quarkus</groupId>
         <artifactId>camel-quarkus-support-webhook</artifactId>
@@ -6238,6 +6248,26 @@
         <artifactId>smallrye-reactive-messaging-camel</artifactId>
         <version>4.5.0</version>
       </dependency>
+      <dependency>
+        <groupId>io.swagger.core.v3</groupId>
+        <artifactId>swagger-models</artifactId>
+        <version>2.2.9</version>
+      </dependency>
+      <dependency>
+        <groupId>io.swagger.parser.v3</groupId>
+        <artifactId>swagger-parser</artifactId>
+        <version>2.1.13</version>
+        <exclusions>
+          <exclusion>
+            <groupId>com.google.code.findbugs</groupId>
+            <artifactId>jsr305</artifactId>
+          </exclusion>
+          <exclusion>
+            <groupId>org.checkerframework</groupId>
+            <artifactId>checker-qual</artifactId>
+          </exclusion>
+        </exclusions>
+      </dependency>
       <dependency>
         <groupId>jakarta.jms</groupId>
         <artifactId>jakarta.jms-api</artifactId>
diff --git a/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml b/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml
index aa3f0f0ee0..89fc961bdb 100644
--- a/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml
+++ b/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml
@@ -5436,6 +5436,16 @@
         <artifactId>camel-quarkus-support-spring-deployment</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
         <version>3.0.0-SNAPSHOT</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
       </dependency>
+      <dependency>
+        <groupId>org.apache.camel.quarkus</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <artifactId>camel-quarkus-support-swagger</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <version>3.0.0-SNAPSHOT</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.quarkus</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <artifactId>camel-quarkus-support-swagger-deployment</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <version>3.0.0-SNAPSHOT</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+      </dependency>
       <dependency>
         <groupId>org.apache.camel.quarkus</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
         <artifactId>camel-quarkus-support-webhook</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
@@ -6238,6 +6248,26 @@
         <artifactId>smallrye-reactive-messaging-camel</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
         <version>4.5.0</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
       </dependency>
+      <dependency>
+        <groupId>io.swagger.core.v3</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <artifactId>swagger-models</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <version>2.2.9</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+      </dependency>
+      <dependency>
+        <groupId>io.swagger.parser.v3</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <artifactId>swagger-parser</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <version>2.1.13</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <exclusions>
+          <exclusion>
+            <groupId>com.google.code.findbugs</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+            <artifactId>jsr305</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+          </exclusion>
+          <exclusion>
+            <groupId>org.checkerframework</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+            <artifactId>checker-qual</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+          </exclusion>
+        </exclusions>
+      </dependency>
       <dependency>
         <groupId>jakarta.jms</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
         <artifactId>jakarta.jms-api</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->