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 14c54d5d58 [Fix #4080] Modularizing open api (#4083)
14c54d5d58 is described below

commit 14c54d5d58166b4e230fb0c0a7bee3b7cd1a9e43
Author: Francisco Javier Tirado Sarti 
<[email protected]>
AuthorDate: Thu Oct 9 12:01:15 2025 +0200

    [Fix #4080] Modularizing open api (#4083)
    
    * [Fix #4080] Modularizing open api
    
    Signed-off-by: fjtirado <[email protected]>
    
    * [Fix #4080] Refining dependencies of token-exhange module
    
    ---------
    
    Signed-off-by: fjtirado <[email protected]>
---
 kogito-bom/pom.xml                                 | 34 +++++++++
 quarkus/addons/common/pom.xml                      |  1 +
 .../addons/common/sonataflow-deployment/pom.xml    | 77 ++++++++++++++++++++
 .../ClassAnnotatedWorkflowHandlerGenerator.java    |  0
 .../serverless/workflow/WorkflowCodeGenUtils.java  |  0
 .../workflow/WorkflowHandlerGeneratedFile.java     |  0
 .../workflow/WorkflowHandlerGenerator.java         |  0
 .../workflow/WorkflowOperationResource.java        |  0
 quarkus/addons/openapi/deployment/pom.xml          | 82 ++++++++++++++++++++++
 .../openapi/WorkflowOpenApiHandlerGenerator.java   |  3 -
 .../openapi/WorkflowOpenApiSpecInputProvider.java  |  0
 ...us.serverless.workflow.WorkflowHandlerGenerator | 20 ++++++
 quarkus/addons/{common => openapi}/pom.xml         | 26 +++----
 quarkus/addons/openapi/runtime/pom.xml             | 82 ++++++++++++++++++++++
 .../runtime/RestClientBuilderFactory.java          |  0
 .../workflow/openapi/OpenApiWorkItemHandler.java   |  0
 .../openapi/RuntimeConfigCredentialsProvider.java  |  0
 quarkus/addons/pom.xml                             |  1 +
 quarkus/addons/token-exchange/deployment/pom.xml   | 13 +---
 quarkus/addons/token-exchange/runtime/pom.xml      | 11 +--
 .../pom.xml                                        | 22 ++----
 .../ServerlessWorkflowAssetsProcessor.java         | 10 ++-
 .../schema}/ServerlessWorkflowOASFilter.java       |  3 +-
 .../kogito-quarkus-serverless-workflow/pom.xml     | 18 +----
 24 files changed, 326 insertions(+), 77 deletions(-)

diff --git a/kogito-bom/pom.xml b/kogito-bom/pom.xml
index eceb1cb70c..702eec48bb 100755
--- a/kogito-bom/pom.xml
+++ b/kogito-bom/pom.xml
@@ -382,6 +382,18 @@
             <version>${project.version}</version>
         <classifier>sources</classifier>
       </dependency>
+      
+      <dependency>
+        <groupId>org.apache.kie.sonataflow</groupId>
+        <artifactId>sonataflow-addons-quarkus-common-deployment</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.kie.sonataflow</groupId>
+        <artifactId>sonataflow-addons-quarkus-common-deployment</artifactId>
+         <version>${project.version}</version>
+        <classifier>sources</classifier>
+      </dependency>
 
       <dependency>
         <groupId>org.kie</groupId>
@@ -2382,6 +2394,28 @@
         <version>${project.version}</version>
         <classifier>sources</classifier>
       </dependency>
+      <dependency>
+        <groupId>org.apache.kie.sonataflow</groupId>
+        <artifactId>sonataflow-addons-quarkus-openapi</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.kie.sonataflow</groupId>
+        <artifactId>sonataflow-addons-quarkus-openapi</artifactId>
+        <version>${project.version}</version>
+        <classifier>sources</classifier>
+      </dependency>
+       <dependency>
+        <groupId>org.apache.kie.sonataflow</groupId>
+        <artifactId>sonataflow-addons-quarkus-openapi-deployment</artifactId>
+        <version>${project.version}</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.kie.sonataflow</groupId>
+        <artifactId>sonataflow-addons-quarkus-openapi-deployment</artifactId>
+        <version>${project.version}</version>
+        <classifier>sources</classifier>
+      </dependency>
       <dependency>
         <groupId>org.kie.kogito</groupId>
         <artifactId>kogito-serverless-workflow-executor-grpc</artifactId>
diff --git a/quarkus/addons/common/pom.xml b/quarkus/addons/common/pom.xml
index 39ff6e9bdb..6d65ccb87a 100644
--- a/quarkus/addons/common/pom.xml
+++ b/quarkus/addons/common/pom.xml
@@ -40,6 +40,7 @@
     <module>kogito-addons-quarkus-common-health</module>
     <module>kogito-addons-quarkus-data-index-health</module>
     <module>kogito-addons-quarkus-jobs-service-health</module>
+    <module>sonataflow-deployment</module>
   </modules>
 
 </project>
diff --git a/quarkus/addons/common/sonataflow-deployment/pom.xml 
b/quarkus/addons/common/sonataflow-deployment/pom.xml
new file mode 100644
index 0000000000..b0a3c419fc
--- /dev/null
+++ b/quarkus/addons/common/sonataflow-deployment/pom.xml
@@ -0,0 +1,77 @@
+<?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:xsi="http://www.w3.org/2001/XMLSchema-instance";
+         xmlns="http://maven.apache.org/POM/4.0.0";
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+  <parent>
+    <artifactId>kogito-addons-quarkus-common-parent</artifactId>
+    <groupId>org.kie</groupId>
+    <version>999-SNAPSHOT</version>
+  </parent>
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.kie.sonataflow</groupId>
+  <artifactId>sonataflow-addons-quarkus-common-deployment</artifactId>
+  <description>Common libraries meant to be used with KIE Quarkus Add-Ons 
sontaflow deployment modules</description>
+
+  <properties>
+     
<java.module.name>org.kie.kogito.quarkus.addons.common.sonataflow.deployment</java.module.name>
+  </properties>
+
+
+  <dependencies>
+    <dependency>
+      <groupId>org.kie</groupId>
+      <artifactId>kogito-addons-quarkus-common-deployment</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.kie.kogito</groupId>
+      <artifactId>kogito-serverless-workflow-builder</artifactId>
+     </dependency>
+  </dependencies>
+  <profiles>
+    <profile>
+      <id>default</id>
+      <activation>
+        <property>
+          <name>!productized</name>
+        </property>
+      </activation>
+      <dependencies>
+        <!-- this is used implicitly by Maven parallel builds so let's make 
Maven aware of it -->
+        <dependency>
+          <groupId>org.jbpm</groupId>
+          <artifactId>jbpm-with-drools-quarkus-deployment</artifactId>
+          <version>${project.version}</version>
+          <type>pom</type>
+          <scope>test</scope>
+          <exclusions>
+            <exclusion>
+              <groupId>*</groupId>
+              <artifactId>*</artifactId>
+            </exclusion>
+          </exclusions>
+        </dependency>
+      </dependencies>
+    </profile>
+  </profiles>
+
+</project>
\ No newline at end of file
diff --git 
a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/ClassAnnotatedWorkflowHandlerGenerator.java
 
b/quarkus/addons/common/sonataflow-deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/ClassAnnotatedWorkflowHandlerGenerator.java
similarity index 100%
rename from 
quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/ClassAnnotatedWorkflowHandlerGenerator.java
rename to 
quarkus/addons/common/sonataflow-deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/ClassAnnotatedWorkflowHandlerGenerator.java
diff --git 
a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/WorkflowCodeGenUtils.java
 
b/quarkus/addons/common/sonataflow-deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/WorkflowCodeGenUtils.java
similarity index 100%
rename from 
quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/WorkflowCodeGenUtils.java
rename to 
quarkus/addons/common/sonataflow-deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/WorkflowCodeGenUtils.java
diff --git 
a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/WorkflowHandlerGeneratedFile.java
 
b/quarkus/addons/common/sonataflow-deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/WorkflowHandlerGeneratedFile.java
similarity index 100%
rename from 
quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/WorkflowHandlerGeneratedFile.java
rename to 
quarkus/addons/common/sonataflow-deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/WorkflowHandlerGeneratedFile.java
diff --git 
a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/WorkflowHandlerGenerator.java
 
b/quarkus/addons/common/sonataflow-deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/WorkflowHandlerGenerator.java
similarity index 100%
rename from 
quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/WorkflowHandlerGenerator.java
rename to 
quarkus/addons/common/sonataflow-deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/WorkflowHandlerGenerator.java
diff --git 
a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/WorkflowOperationResource.java
 
b/quarkus/addons/common/sonataflow-deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/WorkflowOperationResource.java
similarity index 100%
rename from 
quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/WorkflowOperationResource.java
rename to 
quarkus/addons/common/sonataflow-deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/WorkflowOperationResource.java
diff --git a/quarkus/addons/openapi/deployment/pom.xml 
b/quarkus/addons/openapi/deployment/pom.xml
new file mode 100644
index 0000000000..ee164dfe05
--- /dev/null
+++ b/quarkus/addons/openapi/deployment/pom.xml
@@ -0,0 +1,82 @@
+<!--
+
+    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 
https://maven.apache.org/xsd/maven-4.0.0.xsd";>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.kie.sonataflow</groupId>
+    <artifactId>sonataflow-addons-quarkus-openapi-parent</artifactId>
+    <version>999-SNAPSHOT</version>
+  </parent>
+  <artifactId>sonataflow-addons-quarkus-openapi-deployment</artifactId>
+  <name>SonataFlow:: Addons :: Quarkus:: Serverless Workflow:: OpenAPI:: 
Deployment</name>
+  <description>OpenAPI support for serverless workflow</description>
+
+    <properties>
+       
<java.module.name>org.kie.kogito.quarkus.serverless.workflow.openapi.deployment</java.module.name>
+    </properties>
+
+   <dependencies> 
+      <dependency>
+        <groupId>org.apache.kie.sonataflow</groupId>
+        <artifactId>sonataflow-addons-quarkus-openapi</artifactId>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.kie.sonataflow</groupId>
+        <artifactId>sonataflow-addons-quarkus-common-deployment</artifactId>
+      </dependency>
+      <dependency>
+        <groupId>io.quarkus</groupId>
+        <artifactId>quarkus-arc-deployment</artifactId>
+      </dependency>
+      <dependency>
+        <groupId>io.quarkus</groupId>
+        <artifactId>quarkus-resteasy-client-deployment</artifactId>
+      </dependency>
+      <dependency>
+        <groupId>org.kie.kogito</groupId>
+          
<artifactId>kogito-serverless-workflow-openapi-generated-deployment</artifactId>
+       </dependency>
+       <dependency>
+         <groupId>io.quarkus</groupId>
+         <artifactId>quarkus-oidc-client-deployment</artifactId>
+       </dependency>
+       <dependency>
+         <groupId>io.quarkiverse.openapi.generator</groupId>
+          <artifactId>quarkus-openapi-generator-deployment</artifactId>
+      </dependency>
+  </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <configuration>
+          <annotationProcessorPaths>
+            <path>
+              <groupId>io.quarkus</groupId>
+              <artifactId>quarkus-extension-processor</artifactId>
+              <version>${version.io.quarkus}</version>
+            </path>
+          </annotationProcessorPaths>
+        </configuration>
+      </plugin>
+    </plugins>
+  </build>
+</project>
\ No newline at end of file
diff --git 
a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/openapi/WorkflowOpenApiHandlerGenerator.java
 
b/quarkus/addons/openapi/deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/openapi/WorkflowOpenApiHandlerGenerator.java
similarity index 99%
rename from 
quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/openapi/WorkflowOpenApiHandlerGenerator.java
rename to 
quarkus/addons/openapi/deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/openapi/WorkflowOpenApiHandlerGenerator.java
index 73a169478a..d24547e714 100644
--- 
a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/openapi/WorkflowOpenApiHandlerGenerator.java
+++ 
b/quarkus/addons/openapi/deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/openapi/WorkflowOpenApiHandlerGenerator.java
@@ -70,9 +70,6 @@ public class WorkflowOpenApiHandlerGenerator extends 
ClassAnnotatedWorkflowHandl
 
     public static final WorkflowOpenApiHandlerGenerator instance = new 
WorkflowOpenApiHandlerGenerator();
 
-    private WorkflowOpenApiHandlerGenerator() {
-    }
-
     @Override
     protected Stream<WorkflowHandlerGeneratedFile> 
generateHandler(KogitoBuildContext context, AnnotationInstance a) {
         final String fileName = a.value().asString();
diff --git 
a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/openapi/WorkflowOpenApiSpecInputProvider.java
 
b/quarkus/addons/openapi/deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/openapi/WorkflowOpenApiSpecInputProvider.java
similarity index 100%
rename from 
quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/openapi/WorkflowOpenApiSpecInputProvider.java
rename to 
quarkus/addons/openapi/deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/openapi/WorkflowOpenApiSpecInputProvider.java
diff --git 
a/quarkus/addons/openapi/deployment/src/main/resources/META-INF/services/org.kie.kogito.quarkus.serverless.workflow.WorkflowHandlerGenerator
 
b/quarkus/addons/openapi/deployment/src/main/resources/META-INF/services/org.kie.kogito.quarkus.serverless.workflow.WorkflowHandlerGenerator
new file mode 100644
index 0000000000..84b5f3b84b
--- /dev/null
+++ 
b/quarkus/addons/openapi/deployment/src/main/resources/META-INF/services/org.kie.kogito.quarkus.serverless.workflow.WorkflowHandlerGenerator
@@ -0,0 +1,20 @@
+#
+# 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.
+#
+
+org.kie.kogito.quarkus.serverless.workflow.openapi.WorkflowOpenApiHandlerGenerator
\ No newline at end of file
diff --git a/quarkus/addons/common/pom.xml b/quarkus/addons/openapi/pom.xml
similarity index 60%
copy from quarkus/addons/common/pom.xml
copy to quarkus/addons/openapi/pom.xml
index 39ff6e9bdb..2fffcb4496 100644
--- a/quarkus/addons/common/pom.xml
+++ b/quarkus/addons/openapi/pom.xml
@@ -1,4 +1,3 @@
-<?xml version="1.0" encoding="UTF-8"?>
 <!--
 
     Licensed to the Apache Software Foundation (ASF) under one
@@ -19,27 +18,20 @@
     under the License.
 
 -->
-<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
-         xmlns="http://maven.apache.org/POM/4.0.0";
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+<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 
https://maven.apache.org/xsd/maven-4.0.0.xsd";>
+  <modelVersion>4.0.0</modelVersion>
   <parent>
-    <artifactId>kogito-addons-quarkus-parent</artifactId>
     <groupId>org.kie</groupId>
+    <artifactId>kogito-addons-quarkus-parent</artifactId>
     <version>999-SNAPSHOT</version>
   </parent>
-  <modelVersion>4.0.0</modelVersion>
-
-  <artifactId>kogito-addons-quarkus-common-parent</artifactId>
-  <name>Kogito Add-On Quarkus Common - Parent</name>
+  <groupId>org.apache.kie.sonataflow</groupId>
+  <artifactId>sonataflow-addons-quarkus-openapi-parent</artifactId>
+  <name>SonataFlow:: Addons :: Quarkus:: Serverless Workflow:: OpenAPI:: 
Parent</name>
+  <description>Serverless Workflow OpenAPI Quarkus Addons</description>
   <packaging>pom</packaging>
-  <description>Collection of common libraries used by Kogito Quarkus 
Add-ons.</description>
-
   <modules>
     <module>deployment</module>
-    <module>reactive-messaging</module>
-    <module>kogito-addons-quarkus-common-health</module>
-    <module>kogito-addons-quarkus-data-index-health</module>
-    <module>kogito-addons-quarkus-jobs-service-health</module>
+    <module>runtime</module>
   </modules>
-
-</project>
+</project>
\ No newline at end of file
diff --git a/quarkus/addons/openapi/runtime/pom.xml 
b/quarkus/addons/openapi/runtime/pom.xml
new file mode 100644
index 0000000000..3b4f2f192c
--- /dev/null
+++ b/quarkus/addons/openapi/runtime/pom.xml
@@ -0,0 +1,82 @@
+<!--
+
+    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 
https://maven.apache.org/xsd/maven-4.0.0.xsd";>
+  <modelVersion>4.0.0</modelVersion>
+  <parent>
+    <groupId>org.apache.kie.sonataflow</groupId>
+    <artifactId>sonataflow-addons-quarkus-openapi-parent</artifactId>
+    <version>999-SNAPSHOT</version>
+  </parent>
+  <name>SonataFlow:: Addons :: Quarkus:: Serverless Workflow:: OpenAPI:: 
Runtime</name>
+  <description>OpenAPI support for serverless workflow</description>
+  <artifactId>sonataflow-addons-quarkus-openapi</artifactId>
+  
+    <properties>
+       
<java.module.name>org.kie.kogito.quarkus.serverless.workflow.openapi</java.module.name>
+    </properties>
+
+  <dependencies>
+    <dependency>
+      <groupId>io.quarkus</groupId>
+      <artifactId>quarkus-arc</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.kie.kogito</groupId>
+      <artifactId>kogito-serverless-workflow-openapi-generated</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.quarkiverse.openapi.generator</groupId>
+      <artifactId>quarkus-openapi-generator</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.quarkiverse.openapi.generator</groupId>
+      <artifactId>quarkus-openapi-generator-oidc</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.quarkus</groupId>
+      <artifactId>quarkus-resteasy-client</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>io.quarkus</groupId>
+      <artifactId>quarkus-oidc-client</artifactId>
+    </dependency>
+  </dependencies>
+  <build>
+    <plugins>
+      <plugin>
+        <groupId>io.quarkus</groupId>
+        <artifactId>quarkus-extension-maven-plugin</artifactId>
+        <executions>
+          <execution>
+            <phase>compile</phase>
+            <goals>
+              <goal>extension-descriptor</goal>
+            </goals>
+            <configuration>
+              
<deployment>${project.groupId}:${project.artifactId}-deployment:${project.version}</deployment>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+    </plugins>
+  </build>
+</project>
\ No newline at end of file
diff --git 
a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow/src/main/java/io/quarkus/restclient/runtime/RestClientBuilderFactory.java
 
b/quarkus/addons/openapi/runtime/src/main/java/io/quarkus/restclient/runtime/RestClientBuilderFactory.java
similarity index 100%
rename from 
quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow/src/main/java/io/quarkus/restclient/runtime/RestClientBuilderFactory.java
rename to 
quarkus/addons/openapi/runtime/src/main/java/io/quarkus/restclient/runtime/RestClientBuilderFactory.java
diff --git 
a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow/src/main/java/org/kie/kogito/serverless/workflow/openapi/OpenApiWorkItemHandler.java
 
b/quarkus/addons/openapi/runtime/src/main/java/org/kie/kogito/serverless/workflow/openapi/OpenApiWorkItemHandler.java
similarity index 100%
rename from 
quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow/src/main/java/org/kie/kogito/serverless/workflow/openapi/OpenApiWorkItemHandler.java
rename to 
quarkus/addons/openapi/runtime/src/main/java/org/kie/kogito/serverless/workflow/openapi/OpenApiWorkItemHandler.java
diff --git 
a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow/src/main/java/org/kie/kogito/serverless/workflow/openapi/RuntimeConfigCredentialsProvider.java
 
b/quarkus/addons/openapi/runtime/src/main/java/org/kie/kogito/serverless/workflow/openapi/RuntimeConfigCredentialsProvider.java
similarity index 100%
rename from 
quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow/src/main/java/org/kie/kogito/serverless/workflow/openapi/RuntimeConfigCredentialsProvider.java
rename to 
quarkus/addons/openapi/runtime/src/main/java/org/kie/kogito/serverless/workflow/openapi/RuntimeConfigCredentialsProvider.java
diff --git a/quarkus/addons/pom.xml b/quarkus/addons/pom.xml
index 3ec5d56211..aad5323b8f 100644
--- a/quarkus/addons/pom.xml
+++ b/quarkus/addons/pom.xml
@@ -62,6 +62,7 @@
     <module>dynamic</module>
     <module>jbpm-usertask-storage-jpa</module>
     <module>token-exchange</module>
+    <module>openapi</module>
   </modules>
 
   <profiles>
diff --git a/quarkus/addons/token-exchange/deployment/pom.xml 
b/quarkus/addons/token-exchange/deployment/pom.xml
index 2ef1c619b1..c02e24b179 100644
--- a/quarkus/addons/token-exchange/deployment/pom.xml
+++ b/quarkus/addons/token-exchange/deployment/pom.xml
@@ -39,18 +39,9 @@
       <groupId>io.quarkus</groupId>
       <artifactId>quarkus-arc-deployment</artifactId>
     </dependency>
-    <dependency>
-      <groupId>io.quarkus</groupId>
-      <artifactId>quarkus-oidc-client-deployment</artifactId>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
+     <dependency>
       <groupId>org.apache.kie.sonataflow</groupId>
-      <artifactId>sonataflow-quarkus-deployment</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>io.quarkiverse.openapi.generator</groupId>
-      <artifactId>quarkus-openapi-generator-deployment</artifactId>
+      <artifactId>sonataflow-addons-quarkus-openapi-deployment</artifactId>
     </dependency>
     <dependency>
       <groupId>org.kie</groupId>
diff --git a/quarkus/addons/token-exchange/runtime/pom.xml 
b/quarkus/addons/token-exchange/runtime/pom.xml
index 4c6e995409..955240f820 100644
--- a/quarkus/addons/token-exchange/runtime/pom.xml
+++ b/quarkus/addons/token-exchange/runtime/pom.xml
@@ -41,18 +41,9 @@
       <groupId>io.quarkus</groupId>
       <artifactId>quarkus-arc</artifactId>
     </dependency>
-    <dependency>
-      <groupId>io.quarkus</groupId>
-      <artifactId>quarkus-oidc-client</artifactId>
-      <scope>provided</scope>
-    </dependency>
-    <dependency>
-      <groupId>io.quarkiverse.openapi.generator</groupId>
-      <artifactId>quarkus-openapi-generator</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.apache.kie.sonataflow</groupId>
-      <artifactId>sonataflow-quarkus</artifactId>
+      <artifactId>sonataflow-addons-quarkus-openapi</artifactId>
     </dependency>
     <dependency>
       <groupId>org.kie.kogito</groupId>
diff --git 
a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/pom.xml
 
b/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/pom.xml
index adc6c1c9c9..fd44af5033 100644
--- 
a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/pom.xml
+++ 
b/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/pom.xml
@@ -42,10 +42,13 @@
       <groupId>org.apache.kie.sonataflow</groupId>
       <artifactId>sonataflow-quarkus</artifactId>
     </dependency>
-
     <dependency>
-      <groupId>org.kie.kogito</groupId>
-      
<artifactId>kogito-serverless-workflow-openapi-generated-deployment</artifactId>
+      <groupId>org.apache.kie.sonataflow</groupId>
+      <artifactId>sonataflow-addons-quarkus-common-deployment</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.kie.sonataflow</groupId>
+      <artifactId>sonataflow-addons-quarkus-openapi-deployment</artifactId>
     </dependency>
     <dependency>
       <groupId>org.kie.kogito</groupId>
@@ -82,10 +85,6 @@
       <groupId>io.quarkiverse.reactivemessaging.http</groupId>
       <artifactId>quarkus-reactive-messaging-http-deployment</artifactId>
     </dependency>
-    <dependency>
-      <groupId>io.quarkus</groupId>
-      <artifactId>quarkus-resteasy-client-deployment</artifactId>
-    </dependency>
     <dependency>
       <groupId>io.quarkus</groupId>
       <artifactId>quarkus-resteasy-client-jackson-deployment</artifactId>
@@ -102,10 +101,6 @@
       <groupId>io.quarkus</groupId>
       <artifactId>quarkus-cache-deployment</artifactId>
     </dependency>
-    <dependency>
-      <groupId>io.quarkiverse.openapi.generator</groupId>
-      <artifactId>quarkus-openapi-generator-deployment</artifactId>
-    </dependency>
     <dependency>
       <groupId>io.quarkus</groupId>
       <artifactId>quarkus-smallrye-openapi-deployment</artifactId>
@@ -118,11 +113,6 @@
       <groupId>io.quarkus</groupId>
       <artifactId>quarkus-grpc-deployment</artifactId>
     </dependency>
-    <dependency>
-      <groupId>io.quarkus</groupId>
-      <artifactId>quarkus-oidc-client-deployment</artifactId>
-      <scope>provided</scope>
-    </dependency>
     <dependency>
       <groupId>io.quarkus</groupId>
       <artifactId>quarkus-oidc-common-deployment</artifactId>
diff --git 
a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/deployment/ServerlessWorkflowAssetsProcessor.java
 
b/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/deployment/ServerlessWorkflowAssetsProcessor.java
index 2a3241b0ad..c95e39d0e3 100644
--- 
a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/deployment/ServerlessWorkflowAssetsProcessor.java
+++ 
b/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/deployment/ServerlessWorkflowAssetsProcessor.java
@@ -23,6 +23,9 @@ import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.ServiceLoader;
+import java.util.ServiceLoader.Provider;
+import java.util.stream.Stream;
 
 import org.drools.codegen.common.GeneratedFile;
 import org.eclipse.microprofile.openapi.models.media.Schema;
@@ -48,14 +51,13 @@ import 
org.kie.kogito.quarkus.common.deployment.LiveReloadExecutionBuildItem;
 import 
org.kie.kogito.quarkus.extensions.spi.deployment.KogitoProcessContainerGeneratorBuildItem;
 import org.kie.kogito.quarkus.serverless.workflow.WorkflowHandlerGeneratedFile;
 import org.kie.kogito.quarkus.serverless.workflow.WorkflowHandlerGenerator;
-import 
org.kie.kogito.quarkus.serverless.workflow.openapi.ServerlessWorkflowOASFilter;
-import 
org.kie.kogito.quarkus.serverless.workflow.openapi.WorkflowOpenApiHandlerGenerator;
 import 
org.kie.kogito.quarkus.serverless.workflow.rpc.WorkflowRPCHandlerGenerator;
 import org.kie.kogito.quarkus.workflow.deployment.WorkflowProcessor;
 import 
org.kie.kogito.serverless.workflow.operationid.WorkflowOperationIdFactory;
 import org.kie.kogito.serverless.workflow.parser.FunctionNamespace;
 import org.kie.kogito.serverless.workflow.parser.FunctionTypeHandler;
 import 
org.kie.kogito.serverless.workflow.parser.schema.OpenApiModelSchemaGenerator;
+import 
org.kie.kogito.serverless.workflow.parser.schema.ServerlessWorkflowOASFilter;
 import org.kie.kogito.serverless.workflow.rpc.FileDescriptorHolder;
 
 import io.quarkus.deployment.annotations.BuildProducer;
@@ -75,7 +77,9 @@ import 
io.quarkus.smallrye.openapi.deployment.spi.AddToOpenAPIDefinitionBuildIte
 public class ServerlessWorkflowAssetsProcessor extends WorkflowProcessor {
 
     // Injecting Instance<WorkflowOpenApiHandlerGenerator> does not work here
-    private static WorkflowHandlerGenerator[] generators = { 
WorkflowOpenApiHandlerGenerator.instance, WorkflowRPCHandlerGenerator.instance 
};
+
+    private static Collection<WorkflowHandlerGenerator> generators =
+            Stream.concat(Stream.of(WorkflowRPCHandlerGenerator.instance), 
ServiceLoader.load(WorkflowHandlerGenerator.class).stream().map(Provider::get)).toList();
 
     @BuildStep
     @Override
diff --git 
a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/openapi/ServerlessWorkflowOASFilter.java
 
b/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/src/main/java/org/kie/kogito/serverless/workflow/parser/schema/ServerlessWorkflowOASFilter.java
similarity index 91%
rename from 
quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/openapi/ServerlessWorkflowOASFilter.java
rename to 
quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/src/main/java/org/kie/kogito/serverless/workflow/parser/schema/ServerlessWorkflowOASFilter.java
index 470938da13..9016fe2dda 100644
--- 
a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/openapi/ServerlessWorkflowOASFilter.java
+++ 
b/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/src/main/java/org/kie/kogito/serverless/workflow/parser/schema/ServerlessWorkflowOASFilter.java
@@ -16,14 +16,13 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.kie.kogito.quarkus.serverless.workflow.openapi;
+package org.kie.kogito.serverless.workflow.parser.schema;
 
 import java.util.Map;
 
 import org.eclipse.microprofile.openapi.OASFilter;
 import org.eclipse.microprofile.openapi.models.OpenAPI;
 import org.eclipse.microprofile.openapi.models.media.Schema;
-import 
org.kie.kogito.serverless.workflow.parser.schema.OpenApiModelSchemaGenerator;
 
 public final class ServerlessWorkflowOASFilter implements OASFilter {
 
diff --git 
a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow/pom.xml
 
b/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow/pom.xml
index 2bea177e07..b4fd204ce0 100644
--- 
a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow/pom.xml
+++ 
b/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow/pom.xml
@@ -55,10 +55,6 @@
       <artifactId>svm</artifactId>
       <scope>provided</scope>
     </dependency>
-    <dependency>
-      <groupId>io.quarkus</groupId>
-      <artifactId>quarkus-resteasy-client</artifactId>
-    </dependency>
     <dependency>
       <groupId>io.quarkus</groupId>
       <artifactId>quarkus-resteasy-client-jackson</artifactId>
@@ -100,10 +96,6 @@
       <groupId>org.kie.kogito</groupId>
       <artifactId>kogito-serverless-workflow-rest-runtime</artifactId>
     </dependency>
-    <dependency>
-      <groupId>org.kie.kogito</groupId>
-      <artifactId>kogito-serverless-workflow-openapi-generated</artifactId>
-    </dependency>
     <dependency>
       <groupId>org.kie.kogito</groupId>
       <artifactId>kogito-jsonpath-expression</artifactId>
@@ -116,13 +108,9 @@
       <groupId>io.quarkiverse.jackson-jq</groupId>
       <artifactId>quarkus-jackson-jq</artifactId>
     </dependency>
-    <dependency>
-      <groupId>io.quarkiverse.openapi.generator</groupId>
-      <artifactId>quarkus-openapi-generator</artifactId>
-    </dependency>
-    <dependency>
-      <groupId>io.quarkiverse.openapi.generator</groupId>
-      <artifactId>quarkus-openapi-generator-oidc</artifactId>
+     <dependency>
+      <groupId>org.apache.kie.sonataflow</groupId>
+      <artifactId>sonataflow-addons-quarkus-openapi</artifactId>
     </dependency>
     <dependency>
       <groupId>io.quarkiverse.asyncapi</groupId>


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


Reply via email to