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

yesamer pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-kie.git


The following commit(s) were added to refs/heads/main by this push:
     new 7cc005d3dcd [incubator-kie-6902] Upgrade Quarkus to 3.33.3.2 (LTS) 
(#6903)
7cc005d3dcd is described below

commit 7cc005d3dcd16481e1f2230e932de2ab5c229d8a
Author: Nithin R Krishnan <[email protected]>
AuthorDate: Tue Sep 8 00:25:26 2026 +0530

    [incubator-kie-6902] Upgrade Quarkus to 3.33.3.2 (LTS) (#6903)
    
    * chore: update Quarkus and related dependencies to 3.33.x versions across 
multiple modules
    
    * refactor: update QuarkusAppPaths and OptaPlannerProcessor for Quarkus 
3.33 compatibility
    
    * refactor: add Capabilities parameter to Drools and Kogito asset 
processors for improved resource management
    
    * style: reorder imports in ReteCompiler for consistent ordering
    
    * test(knative): remove redundant config assertions from KSink health check 
ITs
    
    * fix: set dynamic free port for dev-mode hot-reload ITs on Quarkus 3.33
    
    * fix: upgrade Infinispan to 16.0.13 and add SerializableMarshallerProvider 
for ProtoStream 6
    
    * fix: handle null components/schemas in JobServiceModelFilter for 
smallrye-open-api 4.2
    
    * fix(jobs-service): complete future exceptionally on error and migrate 
infinispan cache config to xml
    
    * fix(jobs-service): add TriggerMarshallerProvider for ProtoStream 6 
interface lookup
    
    * chore: add Apache license header to job-details-cache.xml
    
    * fix(reliability): use matching infinispan container version from client
    
    * build: add quarkus version 3.33.3.1 to kie-parent pom
    
    * Revert "build: add quarkus version 3.33.3.1 to kie-parent pom"
    
    This reverts commit c8966bbefa6d6537268e8f056ee663be118f64bb.
    
    * retriggering
    
    * build: remove micrometer version property
    
    * chore(jobs-service): remove outdated comment about infinispan persistence 
dependency
    
    * refactor(jobs-service): simplify runAsync using vertx executeBlocking
    
    * fix(jobs-service): make trigger marshaller registration mandatory on 
startup
    
    * fix(jobs-service): change schema missing log from warn to debug
    
    * fix(hot-reload): use SocketUtils and archive properties for port binding 
in dev-mode ITs
    
    * fix: update CORS config property to quarkus.http.cors.enabled
    
    * fix(messaging): stabilize thread pool test with gate latch to prevent 
race condition
    
    * chore: re-trigger CI
    
    * moved quarkus specific version from kie-parent to kogito-quarkus bom
    
    * fix: import infinispan-bom ahead of spring-boot-dependencies to align 
version stack
    
    * CI Retrigger
    
    * fix: pin guava, mutiny, and hibernate versions per quarkus platform 
alignment
    
    * build: move gRPC and reactive messaging deps to kie-parent bom
    
    * CI Retrigger
    
    * build: move framework-specific dep versions from kie-parent to sub-boms
    
    * build: move quarkus-3.33 version pins to scoped boms and promote 
reactive-streams to kie-parent
    
    * build: promote json-smart dependency to kie-parent
    
    * build: upgrade quarkus to 3.33.3.2
    
    * style: reorder import statements for consistency
    
    * refactor: use AppPaths.MAIN_DIR in QuarkusAppPaths
    
    * build: align dependency metadata with Quarkus BOM
---
 .../quarkus/deployment/DroolsAssetsProcessor.java  |  6 +-
 .../deployment/ruleunit/DroolsAssetsProcessor.java |  6 +-
 .../deployment/AbstractDroolsAssetsProcessor.java  | 19 ++++--
 .../quarkus/util/deployment/QuarkusAppPaths.java   |  4 +-
 .../reliability/test/ReliabilityTestBasics.java    |  5 +-
 kie-parent/pom.xml                                 | 63 ++-----------------
 kie-quarkus-build-parent/pom.xml                   | 15 ++++-
 .../common/persistence/infinispan/pom.xml          | 10 ---
 .../data-audit-quarkus-service/pom.xml             |  2 +-
 .../META-INF/microprofile-config.properties        |  2 +-
 .../service/openapi/JobServiceModelFilter.java     | 19 ++++--
 .../repository/impl/BaseReactiveJobRepository.java |  6 +-
 .../jobs-service-infinispan/pom.xml                |  5 --
 .../infinispan/InfinispanConfiguration.java        |  7 +++
 .../marshaller/TriggerMarshallerProvider.java      | 50 +++++++++++++++
 .../resources/META-INF/hotrod-client.properties    | 38 -----------
 .../src/main/resources/application.properties      |  4 +-
 .../src/main/resources/cache/job-details-cache.xml | 36 +++++++++++
 .../infinispan/InfinispanConfigurationTest.java    |  2 +
 .../ProtostreamObjectMarshallerJavaTemplate.java   |  5 +-
 .../marshaller/SerializableMarshallerProvider.java | 51 +++++++++++++++
 .../src/main/resources/application.properties      |  2 +-
 .../kie/kogito/events/mongodb/MockMongoClient.java |  6 ++
 .../AbstractKSinkInjectionHealthCheckIT.java       | 10 ---
 .../KSinkInjectionHealthCheckDefaultConfigIT.java  |  3 -
 .../KSinkInjectionHealthCheckDisabledIT.java       |  3 -
 .../KSinkInjectionHealthCheckEnabledIT.java        |  3 -
 .../common/QuarkusEventThreadPoolTest.java         | 26 +++++---
 kogito-quarkus/bom/pom.xml                         | 63 +++++++++++++++++--
 .../pom.xml                                        |  5 ++
 .../decisions/hotreload/NewFileHotReloadIT.java    | 10 ++-
 .../decisions/hotreload/SimpleHotReloadIT.java     | 10 ++-
 .../hotreload/SimpleModifyHotReloadIT.java         | 13 +++-
 .../src/test/resources/application.properties      | 21 -------
 .../resources/application.properties.stronglytyped | 22 -------
 .../common/deployment/KogitoAssetsProcessor.java   | 10 ++-
 .../pom.xml                                        |  5 ++
 .../quarkus/rules/hotreload/ChangePojoIT.java      | 11 +++-
 .../quarkus/rules/hotreload/HotReloadIT.java       | 17 +++--
 .../quarkus/rules/hotreload/newunit/NewUnitIT.java | 10 ++-
 .../src/test/resources/application.properties      | 21 -------
 kogito-springboot/bom/pom.xml                      | 22 ++++++-
 .../META-INF/microprofile-config.properties        |  2 +-
 .../src/test/resources/application.properties      |  2 +-
 .../src/test/resources/application.properties      |  2 +-
 .../src/test/resources/application.properties      |  2 +-
 optaplanner-build/optaplanner-build-parent/pom.xml | 22 +------
 .../GizmoMemberAccessorEntityEnhancer.java         | 10 ++-
 .../quarkus/deployment/OptaPlannerProcessor.java   | 73 +++++++++++-----------
 ...erProcessorOverridePropertiesAtRuntimeTest.java |  4 +-
 50 files changed, 445 insertions(+), 320 deletions(-)

diff --git 
a/drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/DroolsAssetsProcessor.java
 
b/drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/DroolsAssetsProcessor.java
index 9e146d0eb51..d7faed3daa5 100644
--- 
a/drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/DroolsAssetsProcessor.java
+++ 
b/drools-quarkus-extension/drools-quarkus-deployment/src/main/java/org/drools/quarkus/deployment/DroolsAssetsProcessor.java
@@ -20,6 +20,7 @@ package org.drools.quarkus.deployment;
 
 
 import io.quarkus.arc.deployment.GeneratedBeanBuildItem;
+import io.quarkus.deployment.Capabilities;
 import io.quarkus.deployment.annotations.BuildProducer;
 import io.quarkus.deployment.annotations.BuildStep;
 import io.quarkus.deployment.builditem.ArchiveRootBuildItem;
@@ -54,7 +55,8 @@ public class DroolsAssetsProcessor extends 
AbstractDroolsAssetsProcessor{
                ArchiveRootBuildItem root,
            LiveReloadBuildItem liveReload,
            CurateOutcomeBuildItem curateOutcomeBuildItem,
-           CombinedIndexBuildItem combinedIndexBuildItem,              
+           CombinedIndexBuildItem combinedIndexBuildItem,
+           Capabilities capabilities,
            BuildProducer<GeneratedBeanBuildItem> generatedBeans,
                                  BuildProducer<NativeImageResourceBuildItem> 
resource,
                                  
BuildProducer<AdditionalStaticResourceBuildItem> staticResProducer,
@@ -63,6 +65,6 @@ public class DroolsAssetsProcessor extends 
AbstractDroolsAssetsProcessor{
                                  BuildProducer<KmoduleKieBaseModelsBuiltItem> 
kbaseModelsBI,
                                  BuildProducer<GlobalsBuildItem> globalsBI,
                                  
BuildProducer<GeneratedJaxRsResourceBuildItem> jaxrsProducer) {
-       super.generateSources(root, liveReload, curateOutcomeBuildItem, 
combinedIndexBuildItem, generatedBeans, resource, staticResProducer, genResBI, 
otnClasesBI, kbaseModelsBI, globalsBI, jaxrsProducer);
+       super.generateSources(root, liveReload, curateOutcomeBuildItem, 
combinedIndexBuildItem, capabilities, generatedBeans, resource, 
staticResProducer, genResBI, otnClasesBI, kbaseModelsBI, globalsBI, 
jaxrsProducer);
     }
 }
diff --git 
a/drools-quarkus-extension/drools-quarkus-ruleunits-deployment/src/main/java/org/drools/quarkus/deployment/ruleunit/DroolsAssetsProcessor.java
 
b/drools-quarkus-extension/drools-quarkus-ruleunits-deployment/src/main/java/org/drools/quarkus/deployment/ruleunit/DroolsAssetsProcessor.java
index cfac22ec2fd..b567fc40dee 100644
--- 
a/drools-quarkus-extension/drools-quarkus-ruleunits-deployment/src/main/java/org/drools/quarkus/deployment/ruleunit/DroolsAssetsProcessor.java
+++ 
b/drools-quarkus-extension/drools-quarkus-ruleunits-deployment/src/main/java/org/drools/quarkus/deployment/ruleunit/DroolsAssetsProcessor.java
@@ -20,6 +20,7 @@ package org.drools.quarkus.deployment.ruleunit;
 
 
 import io.quarkus.arc.deployment.GeneratedBeanBuildItem;
+import io.quarkus.deployment.Capabilities;
 import io.quarkus.deployment.annotations.BuildProducer;
 import io.quarkus.deployment.annotations.BuildStep;
 import io.quarkus.deployment.builditem.ArchiveRootBuildItem;
@@ -54,7 +55,8 @@ public class DroolsAssetsProcessor extends 
AbstractDroolsAssetsProcessor{
                ArchiveRootBuildItem root,
            LiveReloadBuildItem liveReload,
            CurateOutcomeBuildItem curateOutcomeBuildItem,
-           CombinedIndexBuildItem combinedIndexBuildItem,              
+           CombinedIndexBuildItem combinedIndexBuildItem,
+           Capabilities capabilities,
            BuildProducer<GeneratedBeanBuildItem> generatedBeans,
                                  BuildProducer<NativeImageResourceBuildItem> 
resource,
                                  
BuildProducer<AdditionalStaticResourceBuildItem> staticResProducer,
@@ -63,6 +65,6 @@ public class DroolsAssetsProcessor extends 
AbstractDroolsAssetsProcessor{
                                  BuildProducer<KmoduleKieBaseModelsBuiltItem> 
kbaseModelsBI,
                                  BuildProducer<GlobalsBuildItem> globalsBI,
                                  
BuildProducer<GeneratedJaxRsResourceBuildItem> jaxrsProducer) {
-       super.generateSources(root, liveReload, curateOutcomeBuildItem, 
combinedIndexBuildItem, generatedBeans, resource, staticResProducer, genResBI, 
otnClasesBI, kbaseModelsBI, globalsBI, jaxrsProducer);
+       super.generateSources(root, liveReload, curateOutcomeBuildItem, 
combinedIndexBuildItem, capabilities, generatedBeans, resource, 
staticResProducer, genResBI, otnClasesBI, kbaseModelsBI, globalsBI, 
jaxrsProducer);
     }
 }
diff --git 
a/drools-quarkus-extension/drools-quarkus-util-deployment/src/main/java/org/drools/quarkus/util/deployment/AbstractDroolsAssetsProcessor.java
 
b/drools-quarkus-extension/drools-quarkus-util-deployment/src/main/java/org/drools/quarkus/util/deployment/AbstractDroolsAssetsProcessor.java
index 8e669eb9d98..88adb9526a6 100644
--- 
a/drools-quarkus-extension/drools-quarkus-util-deployment/src/main/java/org/drools/quarkus/util/deployment/AbstractDroolsAssetsProcessor.java
+++ 
b/drools-quarkus-extension/drools-quarkus-util-deployment/src/main/java/org/drools/quarkus/util/deployment/AbstractDroolsAssetsProcessor.java
@@ -31,6 +31,8 @@ import java.util.stream.Stream;
 import java.util.stream.StreamSupport;
 
 import io.quarkus.arc.deployment.GeneratedBeanBuildItem;
+import io.quarkus.deployment.Capabilities;
+import io.quarkus.deployment.Capability;
 import io.quarkus.deployment.annotations.BuildProducer;
 import io.quarkus.deployment.builditem.ArchiveRootBuildItem;
 import io.quarkus.deployment.builditem.CombinedIndexBuildItem;
@@ -87,7 +89,7 @@ public class AbstractDroolsAssetsProcessor {
            LiveReloadBuildItem liveReload,
            CurateOutcomeBuildItem curateOutcomeBuildItem,
            CombinedIndexBuildItem combinedIndexBuildItem,
-               
+           Capabilities capabilities,
                BuildProducer<GeneratedBeanBuildItem> generatedBeans,
                                  BuildProducer<NativeImageResourceBuildItem> 
resource,
                                  
BuildProducer<AdditionalStaticResourceBuildItem> staticResProducer,
@@ -120,7 +122,16 @@ public class AbstractDroolsAssetsProcessor {
         // build Java source code and register the generated beans
         Collection<GeneratedBeanBuildItem> generatedBeanBuildItems =
                 compileGeneratedSources(context, dependencies, generatedFiles, 
liveReload.isLiveReload());
-        generatedBeanBuildItems.forEach(generatedBeans::produce);
+        Set<String> restResourceClassNameSet = generatedFiles.stream()
+                .filter(file -> file.type() == GeneratedFileType.REST)
+                .map(file -> toClassName(file.path().toString()))
+                .collect(Collectors.toSet());
+        // Reactive REST re-registers JaxRs resources as beans 
(duplicate-class check); classic ignores that channel, so REST
+        // classes need bean registration there. Capability.REST comes from 
BOTH stacks; only RESTEASY_REACTIVE is reactive-specific.
+        boolean reactiveRestPresent = 
capabilities.isPresent(Capability.RESTEASY_REACTIVE);
+        generatedBeanBuildItems.stream()
+                .filter(b -> !reactiveRestPresent || 
!restResourceClassNameSet.contains(b.getName()))
+                .forEach(generatedBeans::produce);
 
         registerResources(generatedFiles, staticResProducer, resource, 
genResBI);
         
@@ -130,10 +141,6 @@ public class AbstractDroolsAssetsProcessor {
         }
         globalsBI.produce(new 
GlobalsBuildItem(ruleCodegen.getPackageModels().stream().collect(Collectors.toMap(PackageModel::getName,
 PackageModel::getGlobals))));
 
-        Set<String> restResourceClassNameSet = generatedFiles.stream()
-                .filter(file -> file.type() == GeneratedFileType.REST)
-                .map(file -> toClassName(file.path().toString()))
-                .collect(Collectors.toSet());
         generatedBeanBuildItems.stream()
                 .filter(b -> restResourceClassNameSet.contains(b.getName()))
                 .forEach(b -> jaxrsProducer.produce(new 
GeneratedJaxRsResourceBuildItem(b.getName(), b.getData())));
diff --git 
a/drools-quarkus-extension/drools-quarkus-util-deployment/src/main/java/org/drools/quarkus/util/deployment/QuarkusAppPaths.java
 
b/drools-quarkus-extension/drools-quarkus-util-deployment/src/main/java/org/drools/quarkus/util/deployment/QuarkusAppPaths.java
index b529b1a7e65..3a93b5c3256 100644
--- 
a/drools-quarkus-extension/drools-quarkus-util-deployment/src/main/java/org/drools/quarkus/util/deployment/QuarkusAppPaths.java
+++ 
b/drools-quarkus-extension/drools-quarkus-util-deployment/src/main/java/org/drools/quarkus/util/deployment/QuarkusAppPaths.java
@@ -27,7 +27,6 @@ import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Set;
 
-import io.quarkus.deployment.pkg.steps.JarResultBuildStep;
 import org.drools.codegen.common.AppPaths;
 
 /**
@@ -52,7 +51,8 @@ public class QuarkusAppPaths extends AppPaths {
     }
 
     protected QuarkusAppPaths(List<Path> projectPaths, Collection<Path> 
classesPaths, boolean isJar) {
-        super(projectPaths, classesPaths, isJar, AppPaths.BT, 
JarResultBuildStep.MAIN, false);
+        // AppPaths.MAIN_DIR replaces JarResultBuildStep.MAIN, which Quarkus 
3.33 removed
+        super(projectPaths, classesPaths, isJar, AppPaths.BT, 
AppPaths.MAIN_DIR, false);
     }
 
     public static AppPaths from(Iterable<Path> paths) {
diff --git 
a/drools-reliability/drools-reliability-tests/src/test/java/org/drools/reliability/test/ReliabilityTestBasics.java
 
b/drools-reliability/drools-reliability-tests/src/test/java/org/drools/reliability/test/ReliabilityTestBasics.java
index 7c70a402b26..f451b48150d 100644
--- 
a/drools-reliability/drools-reliability-tests/src/test/java/org/drools/reliability/test/ReliabilityTestBasics.java
+++ 
b/drools-reliability/drools-reliability-tests/src/test/java/org/drools/reliability/test/ReliabilityTestBasics.java
@@ -38,6 +38,7 @@ import org.drools.reliability.core.StorageManagerFactory;
 import org.drools.reliability.core.TestableStorageManager;
 import org.drools.reliability.infinispan.InfinispanStorageManager;
 import org.infinispan.client.hotrod.RemoteCacheManager;
+import org.infinispan.commons.util.Version;
 import org.infinispan.server.test.core.InfinispanContainer;
 import org.junit.jupiter.api.AfterEach;
 import org.junit.jupiter.api.BeforeEach;
@@ -142,8 +143,8 @@ public abstract class ReliabilityTestBasics {
     public void setUp() {
         if (((TestableStorageManager) 
StorageManagerFactory.get().getStorageManager()).isRemote()) {
             LOG.info("Starting InfinispanContainer");
-            container = new InfinispanContainer()
-                    .withFileSystemBind("infinispan-remote-config", 
"/user-config")
+            container = new 
InfinispanContainer(InfinispanContainer.IMAGE_BASENAME + ":" + 
Version.getMajorMinor());
+            container.withFileSystemBind("infinispan-remote-config", 
"/user-config")
                     .withCommand("-c /user-config/infinispan-local.xml");
             container.start();
             LOG.info("InfinispanContainer started"); // takes about 10 seconds
diff --git a/kie-parent/pom.xml b/kie-parent/pom.xml
index 7cf5f08105c..050f18667a8 100644
--- a/kie-parent/pom.xml
+++ b/kie-parent/pom.xml
@@ -97,7 +97,6 @@
     <version.com.github.javaparser>3.27.0</version.com.github.javaparser>
     <!-- replaces findbugs-maven-plugin -->
     
<version.com.github.spotbugs-maven-plugin>4.9.8.3</version.com.github.spotbugs-maven-plugin>
-    <version.com.github.stephenc.jcip>1.0-1</version.com.github.stephenc.jcip>
     <version.com.github.victools>4.37.0</version.com.github.victools>
     <version.com.google.collections>1.0</version.com.google.collections>
     <version.com.google.gson>2.13.2</version.com.google.gson>
@@ -149,7 +148,6 @@
     <version.io.opentelemetry>1.0.0-alpha</version.io.opentelemetry>
     <version.io.rest-assured>5.5.6</version.io.rest-assured>
     <version.io.smallrye-config>3.13.4</version.io.smallrye-config>
-    <version.io.smallrye-health>4.2.0</version.io.smallrye-health>
     <version.io.smallrye-open-api>4.0.12</version.io.smallrye-open-api>
     <version.io.smallrye.config.core>3.13.4</version.io.smallrye.config.core>
     <version.io.smallrye.jandex>3.4.0</version.io.smallrye.jandex>
@@ -224,7 +222,7 @@
     
<version.org.apache.httpcomponents.httpcore>4.4.16</version.org.apache.httpcomponents.httpcore>
     <version.org.apache.kafka>4.1.2</version.org.apache.kafka>
     <!-- CVE-2026-49844: poi-ooxml:5.4.1 pulls log4j-api:2.24.3 transitively 
via log4j-bom:2.24.3.
-         quarkus-bom:3.27.4.1 promotes it to 2.25.1. Both are below the 
minimum safe version 2.25.5.
+         quarkus-bom:3.33.3.2 promotes it to 2.25.3. Both are below the 
minimum safe version 2.25.5.
          This managed entry forces 2.26.1 across all modules inheriting 
kie-parent.
          https://logging.apache.org/security.html#CVE-2026-49844 -->
     <version.org.apache.logging.log4j>2.26.1</version.org.apache.logging.log4j>
@@ -255,14 +253,13 @@
     <version.org.flywaydb>11.14.1</version.org.flywaydb>
     <version.org.freemarker>2.3.34</version.org.freemarker>
     <version.org.glassfish.jaxb>4.0.6</version.org.glassfish.jaxb>
-    <version.org.graalvm.nativeimage>23.1.2</version.org.graalvm.nativeimage>
     <!--This needs to be in sync with JUnit-->
     <version.org.hamcrest>3.0</version.org.hamcrest>
     <version.org.hamcrest.hamcrest-all>1.3</version.org.hamcrest.hamcrest-all>
     <version.org.hibernate>7.1.18.Final</version.org.hibernate>
     <version.org.hsqldb>2.7.1</version.org.hsqldb>
-    <version.org.infinispan>15.2.6.Final</version.org.infinispan>
-    
<version.org.infinispan.protostream>5.0.13.Final</version.org.infinispan.protostream>
+    <version.org.infinispan>16.0.13</version.org.infinispan>
+    
<version.org.infinispan.protostream>6.0.7</version.org.infinispan.protostream>
     <version.org.javassist>3.26.0-GA</version.org.javassist>
     
<version.org.jboss.arquillian.selenium>3.13.0</version.org.jboss.arquillian.selenium>
     <version.org.jboss.logging>3.6.1.Final</version.org.jboss.logging>
@@ -273,8 +270,6 @@
     
<version.org.jboss.transaction.spi>8.0.0.Final</version.org.jboss.transaction.spi>
     <version.org.jboss.weld.weld>3.1.6.Final</version.org.jboss.weld.weld>
     <version.org.jpmml.model>1.6.4</version.org.jpmml.model>
-    <version.org.jredisearch>2.2.0</version.org.jredisearch>
-    <version.org.json>20231013</version.org.json>
     <version.org.json-unit-assertj>2.9.0</version.org.json-unit-assertj>
     <!-- JUnit 6: single version property for jupiter + platform + vintage 
artifacts. See version.junit above for the legacy JUnit 4 API. -->
     <version.org.junit>6.0.3</version.org.junit>
@@ -293,8 +288,6 @@
     <version.org.rocksdb>7.10.2</version.org.rocksdb>
     <version.org.skyscreamer>1.5.1</version.org.skyscreamer>
     <version.org.slf4j>2.0.17</version.org.slf4j>
-    <version.org.spockframework>2.2-groovy-4.0</version.org.spockframework>
-    <version.org.springdoc>2.8.13</version.org.springdoc>
     <version.org.testcontainers>2.0.4</version.org.testcontainers>
     
<version.org.testcontainers.junit-jupiter>1.21.4</version.org.testcontainers.junit-jupiter>
     
<version.org.testcontainers.postgresql>1.21.4</version.org.testcontainers.postgresql>
@@ -480,12 +473,6 @@
         <artifactId>javaparser-symbol-solver-core</artifactId>
         <version>${version.com.github.javaparser}</version>
       </dependency>
-      <dependency>
-        <groupId>com.github.stephenc.jcip</groupId>
-        <artifactId>jcip-annotations</artifactId>
-        <version>${version.com.github.stephenc.jcip}</version>
-        <scope>test</scope>
-      </dependency>
       <dependency>
         <groupId>com.github.victools</groupId>
         <artifactId>jsonschema-generator</artifactId>
@@ -583,17 +570,6 @@
         <artifactId>scram-client</artifactId>
         <version>${version.com.ongres.scram}</version>
       </dependency>
-      <dependency>
-        <groupId>com.redislabs</groupId>
-        <artifactId>jredisearch</artifactId>
-        <version>${version.org.jredisearch}</version>
-        <exclusions>
-          <exclusion>
-            <groupId>org.json</groupId>
-            <artifactId>json</artifactId>
-          </exclusion>
-        </exclusions>
-      </dependency>
       <dependency>
         <groupId>com.squareup.okhttp3</groupId>
         <artifactId>okhttp</artifactId>
@@ -1345,7 +1321,7 @@
       </dependency>
       <dependency>
         <!-- CVE-2026-49844: override log4j-api version pulled in transitively 
by poi-ooxml:5.4.1
-             (via log4j-bom:2.24.3) and promoted by quarkus-bom:3.27.4.1 (to 
2.25.1).
+             (via log4j-bom:2.24.3) and promoted by quarkus-bom:3.33.3.2 (to 
2.25.3).
              Both are vulnerable; this pins the version to 2.26.1 for all 
inheriting modules. -->
         <groupId>org.apache.logging.log4j</groupId>
         <artifactId>log4j-api</artifactId>
@@ -1762,11 +1738,6 @@
         <version>${version.graalvm}</version>
         <scope>test</scope>
       </dependency>
-      <dependency>
-        <groupId>org.graalvm.nativeimage</groupId>
-        <artifactId>svm</artifactId>
-        <version>${version.org.graalvm.nativeimage}</version>
-      </dependency>
       <dependency>
         <groupId>org.hamcrest</groupId>
         <artifactId>hamcrest</artifactId>
@@ -1834,16 +1805,6 @@
         <artifactId>infinispan-core</artifactId>
         <version>${version.org.infinispan}</version>
       </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-query-dsl</artifactId>
-        <version>${version.org.infinispan}</version>
-      </dependency>
-      <dependency>
-        <groupId>org.infinispan</groupId>
-        <artifactId>infinispan-remote-query-client</artifactId>
-        <version>${version.org.infinispan}</version>
-      </dependency>
       <dependency>
         <groupId>org.infinispan</groupId>
         <artifactId>infinispan-server-testdriver-core</artifactId>
@@ -1963,11 +1924,6 @@
         <artifactId>pmml-model</artifactId>
         <version>${version.org.jpmml.model}</version>
       </dependency>
-      <dependency>
-        <groupId>org.json</groupId>
-        <artifactId>json</artifactId>
-        <version>${version.org.json}</version>
-      </dependency>
       <dependency>
         <groupId>org.junit.jupiter</groupId>
         <artifactId>junit-jupiter</artifactId>
@@ -2206,17 +2162,6 @@
         <version>${version.sisu.inject}</version>
         <scope>test</scope>
       </dependency>
-      <dependency>
-        <groupId>org.spockframework</groupId>
-        <artifactId>spock-core</artifactId>
-        <version>${version.org.spockframework}</version>
-        <scope>test</scope>
-      </dependency>
-      <dependency>
-        <groupId>org.springdoc</groupId>
-        <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
-        <version>${version.org.springdoc}</version>
-      </dependency>
       <!-- testcontainers dependencies -->
       <dependency>
         <groupId>org.testcontainers</groupId>
diff --git a/kie-quarkus-build-parent/pom.xml b/kie-quarkus-build-parent/pom.xml
index aed25bcb06a..e2f3e6a1a55 100644
--- a/kie-quarkus-build-parent/pom.xml
+++ b/kie-quarkus-build-parent/pom.xml
@@ -39,8 +39,19 @@
   </description>
 
   <properties>
-    <version.io.quarkus>3.27.5.1</version.io.quarkus>
-    <version.io.quarkus.camel>3.27.5.1</version.io.quarkus.camel>
+    <version.io.quarkus>3.33.3.2</version.io.quarkus>
+    <version.io.quarkus.camel>3.33.2</version.io.quarkus.camel>
+    <!-- Quarkus-platform-aligned pin. kie-parent keeps the Spring Boot / 
framework-neutral value;
+         this tree needs the platform one (smallrye-reactive-messaging 4.33.0 
requires Mutiny 3). -->
+    <version.io.smallrye.mutiny>3.1.1</version.io.smallrye.mutiny>
+    
<version.io.smallrye.reactive.messaging.in.memory>4.33.0</version.io.smallrye.reactive.messaging.in.memory>
+    <!-- Quarkus 3.33 platform pins (same as kogito-quarkus/bom; this tree 
does not inherit it). kie-parent keeps the
+         framework-neutral values. smallrye-config 3.16 and jandex 3.5 are 
hard requirements; open-api 4.2.4 needs jandex 3.5. -->
+    <version.io.smallrye-config>3.16.0</version.io.smallrye-config>
+    <version.io.smallrye.config.core>3.16.0</version.io.smallrye.config.core>
+    <version.io.smallrye.jandex>3.5.3</version.io.smallrye.jandex>
+    <version.io.smallrye-open-api>4.2.4</version.io.smallrye-open-api>
+    <version.io.smallrye.openapi.core>4.2.4</version.io.smallrye.openapi.core>
     <!-- Used to define which poms are allowed to have dependencyManagement 
sections. This is to enforce the convention that only the root pom should have 
dependencyManagement, and all other poms should inherit from it. -->
     <allowedPomsList>org.kie:kie-quarkus-build-parent</allowedPomsList>
     <!-- To be overridden by poms with dependency management -->
diff --git a/kogito-addons/common/persistence/infinispan/pom.xml 
b/kogito-addons/common/persistence/infinispan/pom.xml
index b1b6181af35..03b4c62f00b 100644
--- a/kogito-addons/common/persistence/infinispan/pom.xml
+++ b/kogito-addons/common/persistence/infinispan/pom.xml
@@ -98,16 +98,6 @@
       <scope>test</scope>
     </dependency>
     <!--  only needed for mocking -->
-    <dependency>
-      <groupId>org.infinispan</groupId>
-      <artifactId>infinispan-remote-query-client</artifactId>
-      <scope>test</scope>
-    </dependency>
-    <dependency>
-      <groupId>org.infinispan</groupId>
-      <artifactId>infinispan-query-dsl</artifactId>
-      <scope>test</scope>
-    </dependency>
 
   </dependencies>
 
diff --git 
a/kogito-apps-quarkus/data-audit-quarkus/data-audit-quarkus-service/pom.xml 
b/kogito-apps-quarkus/data-audit-quarkus/data-audit-quarkus-service/pom.xml
index 33beaf41a8a..baa10b18aa7 100644
--- a/kogito-apps-quarkus/data-audit-quarkus/data-audit-quarkus-service/pom.xml
+++ b/kogito-apps-quarkus/data-audit-quarkus/data-audit-quarkus-service/pom.xml
@@ -85,7 +85,7 @@
         </dependency>
         <dependency>
             <groupId>io.quarkus</groupId>
-            <artifactId>quarkus-smallrye-metrics</artifactId>
+            <artifactId>quarkus-micrometer-registry-prometheus</artifactId>
         </dependency>
         <dependency>
             <groupId>org.apache.kafka</groupId>
diff --git 
a/kogito-apps-quarkus/data-index-quarkus/data-index-service-quarkus-common/src/main/resources/META-INF/microprofile-config.properties
 
b/kogito-apps-quarkus/data-index-quarkus/data-index-service-quarkus-common/src/main/resources/META-INF/microprofile-config.properties
index 331e25555df..3ae1854dec5 100644
--- 
a/kogito-apps-quarkus/data-index-quarkus/data-index-service-quarkus-common/src/main/resources/META-INF/microprofile-config.properties
+++ 
b/kogito-apps-quarkus/data-index-quarkus/data-index-service-quarkus-common/src/main/resources/META-INF/microprofile-config.properties
@@ -20,7 +20,7 @@
 # Quarkus HTTP
 quarkus.http.port=8180
 quarkus.http.test-port=8181
-quarkus.http.cors=true
+quarkus.http.cors.enabled=true
 
 # Messaging
 quarkus.reactive-messaging.metrics.enabled=true
diff --git 
a/kogito-apps-quarkus/jobs-service-quarkus/jobs-service-common/src/main/java/org/kie/kogito/jobs/service/openapi/JobServiceModelFilter.java
 
b/kogito-apps-quarkus/jobs-service-quarkus/jobs-service-common/src/main/java/org/kie/kogito/jobs/service/openapi/JobServiceModelFilter.java
index 554bbf6f22b..5e7e82a13fb 100644
--- 
a/kogito-apps-quarkus/jobs-service-quarkus/jobs-service-common/src/main/java/org/kie/kogito/jobs/service/openapi/JobServiceModelFilter.java
+++ 
b/kogito-apps-quarkus/jobs-service-quarkus/jobs-service-common/src/main/java/org/kie/kogito/jobs/service/openapi/JobServiceModelFilter.java
@@ -21,9 +21,11 @@ package org.kie.kogito.jobs.service.openapi;
 import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
+import java.util.Map;
 
 import org.eclipse.microprofile.openapi.OASFactory;
 import org.eclipse.microprofile.openapi.OASFilter;
+import org.eclipse.microprofile.openapi.models.Components;
 import org.eclipse.microprofile.openapi.models.OpenAPI;
 import org.eclipse.microprofile.openapi.models.media.Discriminator;
 import org.eclipse.microprofile.openapi.models.media.Schema;
@@ -55,9 +57,18 @@ public class JobServiceModelFilter implements OASFilter {
 
     @Override
     public void filterOpenAPI(OpenAPI openAPI) {
+        // Since smallrye-open-api 4.2 both the components and their schemas 
map can be null when the
+        // document declares no schemas (e.g. embedded job service without the 
REST API).
+        Components components = openAPI.getComponents();
+        Map<String, Schema> schemas = components != null ? 
components.getSchemas() : null;
+        if (schemas == null) {
+            LOGGER.debug("No component schemas are present in the OpenAPI 
document, skipping job service schema adjustments.");
+            return;
+        }
+
         // The JsonNode schema is automatically generated from the 
com.fasterxml.jackson.databind.JsonNode class with
         // the type Schema.SchemaType.ARRAY, however the real type is 
Schema.SchemaType.OBJECT.
-        Schema jsonObjectSchema = 
openAPI.getComponents().getSchemas().get(JSON_NODE_SCHEMA);
+        Schema jsonObjectSchema = schemas.get(JSON_NODE_SCHEMA);
         if (jsonObjectSchema != null) {
             LOGGER.debug("Setting {} schema type to: {}.", JSON_NODE_SCHEMA, 
Schema.SchemaType.OBJECT);
             jsonObjectSchema.type(List.of(Schema.SchemaType.OBJECT));
@@ -68,7 +79,7 @@ public class JobServiceModelFilter implements OASFilter {
         // The SpecVersion schema is automatically generated from the 
io.cloudevents.SpecVersion enum, and thus will
         // be composed of the enum names V03 and V1, however third party 
clients must send the values "0.3" and "1.0"
         // as part of their produced json. So the OpenAPI document must 
declare these values instead.
-        Schema specVersionSchema = 
openAPI.getComponents().getSchemas().get(SPEC_VERSION_SCHEMA);
+        Schema specVersionSchema = schemas.get(SPEC_VERSION_SCHEMA);
         if (specVersionSchema != null) {
             List<Object> enumerationValues = 
Collections.unmodifiableList(Arrays.asList(V03.toString(), V1.toString()));
             LOGGER.debug("Changing {} enum schema from: {}, to: {}", 
SPEC_VERSION_SCHEMA, specVersionSchema.getEnumeration(), enumerationValues);
@@ -77,14 +88,14 @@ public class JobServiceModelFilter implements OASFilter {
             LOGGER.warn("{} enum schema is not present in the OpenAPI 
document.", SPEC_VERSION_SCHEMA);
         }
 
-        Schema recipientSchema = 
openAPI.getComponents().getSchemas().get(RECIPIENT_SCHEMA);
+        Schema recipientSchema = schemas.get(RECIPIENT_SCHEMA);
         if (recipientSchema != null) {
             adjustRecipientSchema(recipientSchema);
         } else {
             LOGGER.error("{} schema is not present in the OpenAPI document.", 
RECIPIENT_SCHEMA);
         }
 
-        Schema scheduleSchema = 
openAPI.getComponents().getSchemas().get(SCHEDULE_SCHEMA);
+        Schema scheduleSchema = schemas.get(SCHEDULE_SCHEMA);
         if (scheduleSchema != null) {
             adjustScheduleSchema(scheduleSchema);
         } else {
diff --git 
a/kogito-apps-quarkus/jobs-service-quarkus/jobs-service-common/src/main/java/org/kie/kogito/jobs/service/repository/impl/BaseReactiveJobRepository.java
 
b/kogito-apps-quarkus/jobs-service-quarkus/jobs-service-common/src/main/java/org/kie/kogito/jobs/service/repository/impl/BaseReactiveJobRepository.java
index 2827d1538f1..0885a751413 100644
--- 
a/kogito-apps-quarkus/jobs-service-quarkus/jobs-service-common/src/main/java/org/kie/kogito/jobs/service/repository/impl/BaseReactiveJobRepository.java
+++ 
b/kogito-apps-quarkus/jobs-service-quarkus/jobs-service-common/src/main/java/org/kie/kogito/jobs/service/repository/impl/BaseReactiveJobRepository.java
@@ -42,10 +42,8 @@ public abstract class BaseReactiveJobRepository implements 
ReactiveJobRepository
     }
 
     public <T> CompletionStage<T> runAsync(Supplier<T> function) {
-        final CompletableFuture<T> future = new CompletableFuture<>();
-        vertx.executeBlocking(v -> future.complete(function.get()), r -> {
-        });
-        return future;
+        // a throwing supplier fails the returned future instead of leaving 
callers waiting forever
+        return vertx.executeBlocking(function::get).toCompletionStage();
     }
 
     @Override
diff --git 
a/kogito-apps-quarkus/jobs-service-quarkus/jobs-service-infinispan/pom.xml 
b/kogito-apps-quarkus/jobs-service-quarkus/jobs-service-infinispan/pom.xml
index 434456d14c1..73873099b90 100644
--- a/kogito-apps-quarkus/jobs-service-quarkus/jobs-service-infinispan/pom.xml
+++ b/kogito-apps-quarkus/jobs-service-quarkus/jobs-service-infinispan/pom.xml
@@ -65,11 +65,6 @@
             <groupId>io.quarkus</groupId>
             <artifactId>quarkus-infinispan-client</artifactId>
         </dependency>
-        <!-- Needs to be declared as Jobs service doesn't leverage 
persistence-commons-infinispan. -->
-        <dependency>
-            <groupId>org.infinispan</groupId>
-            <artifactId>infinispan-query-dsl</artifactId>
-        </dependency>
         <dependency>
             <groupId>org.kie</groupId>
             
<artifactId>kie-addons-quarkus-persistence-infinispan-health</artifactId>
diff --git 
a/kogito-apps-quarkus/jobs-service-quarkus/jobs-service-infinispan/src/main/java/org/kie/kogito/jobs/service/repository/infinispan/InfinispanConfiguration.java
 
b/kogito-apps-quarkus/jobs-service-quarkus/jobs-service-infinispan/src/main/java/org/kie/kogito/jobs/service/repository/infinispan/InfinispanConfiguration.java
index 4737228045c..8d0b81277c2 100644
--- 
a/kogito-apps-quarkus/jobs-service-quarkus/jobs-service-infinispan/src/main/java/org/kie/kogito/jobs/service/repository/infinispan/InfinispanConfiguration.java
+++ 
b/kogito-apps-quarkus/jobs-service-quarkus/jobs-service-infinispan/src/main/java/org/kie/kogito/jobs/service/repository/infinispan/InfinispanConfiguration.java
@@ -24,7 +24,9 @@ import java.util.concurrent.atomic.AtomicBoolean;
 import org.eclipse.microprofile.health.HealthCheck;
 import org.eclipse.microprofile.health.Readiness;
 import org.infinispan.client.hotrod.RemoteCacheManager;
+import org.infinispan.client.hotrod.marshall.MarshallerUtil;
 import org.kie.kogito.infinispan.health.InfinispanHealthCheck;
+import 
org.kie.kogito.jobs.service.repository.infinispan.marshaller.TriggerMarshallerProvider;
 
 import io.quarkus.runtime.StartupEvent;
 
@@ -64,6 +66,11 @@ public class InfinispanConfiguration {
     void initializeCaches(@Observes 
@Priority(Interceptor.Priority.PLATFORM_BEFORE) StartupEvent startupEvent,
             Instance<RemoteCacheManager> remoteCacheManager,
             Event<InfinispanInitialized> initializedEvent) {
+        // ProtoStream 6 no longer indexes interface-typed marshallers by Java 
class; this provider
+        // keeps Trigger-typed values resolvable (see 
TriggerMarshallerProvider). Trigger marshalling
+        // is mandatory for this repository, so a missing SerializationContext 
must abort startup.
+        MarshallerUtil.getSerializationContext(remoteCacheManager.get())
+                .registerMarshallerProvider(new TriggerMarshallerProvider());
         Optional.ofNullable(remoteCacheManager.get().getCache(JOB_DETAILS))
                 .ifPresent(c -> {
                     initializedEvent.fire(new InfinispanInitialized());
diff --git 
a/kogito-apps-quarkus/jobs-service-quarkus/jobs-service-infinispan/src/main/java/org/kie/kogito/jobs/service/repository/infinispan/marshaller/TriggerMarshallerProvider.java
 
b/kogito-apps-quarkus/jobs-service-quarkus/jobs-service-infinispan/src/main/java/org/kie/kogito/jobs/service/repository/infinispan/marshaller/TriggerMarshallerProvider.java
new file mode 100644
index 00000000000..e0a80438c62
--- /dev/null
+++ 
b/kogito-apps-quarkus/jobs-service-quarkus/jobs-service-infinispan/src/main/java/org/kie/kogito/jobs/service/repository/infinispan/marshaller/TriggerMarshallerProvider.java
@@ -0,0 +1,50 @@
+/*
+ * 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.kie.kogito.jobs.service.repository.infinispan.marshaller;
+
+import org.infinispan.protostream.BaseMarshaller;
+import org.infinispan.protostream.SerializationContext;
+import org.kie.kogito.timer.Trigger;
+
+/**
+ * Restores marshaller resolution for {@link Trigger}-typed values on 
ProtoStream 6+.
+ * <p>
+ * Up to ProtoStream 5, registering {@link TriggerMarshaller} also indexed it 
under its Java type,
+ * so lookups by the {@code Trigger} interface (as {@link 
JobDetailsMarshaller} performs when
+ * writing the trigger field) resolved it. ProtoStream 6 no longer indexes 
interface types, so this
+ * provider answers those class-based lookups instead.
+ * <p>
+ * {@link SerializationContext.MarshallerProvider} is deprecated in favor of 
the instance-based
+ * provider, but remains the only hook consulted for lookups where just the 
declared class is known.
+ */
+@SuppressWarnings("deprecation")
+public class TriggerMarshallerProvider implements 
SerializationContext.MarshallerProvider {
+
+    private final TriggerMarshaller marshaller = new TriggerMarshaller();
+
+    @Override
+    public BaseMarshaller<?> getMarshaller(String typeName) {
+        return marshaller.getTypeName().equals(typeName) ? marshaller : null;
+    }
+
+    @Override
+    public BaseMarshaller<?> getMarshaller(Class<?> javaClass) {
+        return Trigger.class.isAssignableFrom(javaClass) ? marshaller : null;
+    }
+}
diff --git 
a/kogito-apps-quarkus/jobs-service-quarkus/jobs-service-infinispan/src/main/resources/META-INF/hotrod-client.properties
 
b/kogito-apps-quarkus/jobs-service-quarkus/jobs-service-infinispan/src/main/resources/META-INF/hotrod-client.properties
deleted file mode 100644
index d5a0146064b..00000000000
--- 
a/kogito-apps-quarkus/jobs-service-quarkus/jobs-service-infinispan/src/main/resources/META-INF/hotrod-client.properties
+++ /dev/null
@@ -1,38 +0,0 @@
-#
-# 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.
-#
-
-# Docker 4 Mac workaround
-# infinispan.client.hotrod.client_intelligence=BASIC
-
-infinispan.client.hotrod.cache.JOB_DETAILS_V2.configuration=\
-  <infinispan>\
-    <cache-container shutdown-hook="DEFAULT">\
-      <local-cache name="JOB_DETAILS_V2">\
-        <indexing storage=\"filesystem\" path="jobs-service">\
-          <indexed-entities>\
-            <indexed-entity>job.service.JobDetails</indexed-entity>\
-            <indexed-entity>job.service.Trigger</indexed-entity>\
-          </indexed-entities>\
-        </indexing>\
-        <persistence> \
-            <file-store/> \
-        </persistence> \
-      </local-cache>\
-    </cache-container>\
-  </infinispan>
\ No newline at end of file
diff --git 
a/kogito-apps-quarkus/jobs-service-quarkus/jobs-service-infinispan/src/main/resources/application.properties
 
b/kogito-apps-quarkus/jobs-service-quarkus/jobs-service-infinispan/src/main/resources/application.properties
index eff249325f2..f82a413e39a 100644
--- 
a/kogito-apps-quarkus/jobs-service-quarkus/jobs-service-infinispan/src/main/resources/application.properties
+++ 
b/kogito-apps-quarkus/jobs-service-quarkus/jobs-service-infinispan/src/main/resources/application.properties
@@ -24,4 +24,6 @@ 
quarkus.infinispan-client.password=${infinispan_password:password}
 #with infinispan 11 authentication should be set to true by default, running 
with 10 without auth, set to false
 quarkus.infinispan-client.use-auth=${infinispan_useauth:true}
 quarkus.infinispan-client.auth-realm=${infinispan_authrealm:default}
-quarkus.infinispan-client.sasl-mechanism=${infinispan_saslmechanism:DIGEST-MD5}
\ No newline at end of file
+quarkus.infinispan-client.sasl-mechanism=${infinispan_saslmechanism:SCRAM-SHA-512}
+#Cache definitions - created on the server at client startup when missing.
+quarkus.infinispan-client.cache.JOB_DETAILS_V2.configuration-uri=cache/job-details-cache.xml
diff --git 
a/kogito-apps-quarkus/jobs-service-quarkus/jobs-service-infinispan/src/main/resources/cache/job-details-cache.xml
 
b/kogito-apps-quarkus/jobs-service-quarkus/jobs-service-infinispan/src/main/resources/cache/job-details-cache.xml
new file mode 100644
index 00000000000..582655ed9b0
--- /dev/null
+++ 
b/kogito-apps-quarkus/jobs-service-quarkus/jobs-service-infinispan/src/main/resources/cache/job-details-cache.xml
@@ -0,0 +1,36 @@
+<!--
+
+    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.
+
+-->
+<infinispan>
+    <cache-container shutdown-hook="DEFAULT">
+        <local-cache name="JOB_DETAILS_V2">
+            <encoding media-type="application/x-protostream"/>
+            <indexing storage="filesystem" path="jobs-service">
+                <indexed-entities>
+                    <indexed-entity>job.service.JobDetails</indexed-entity>
+                    <indexed-entity>job.service.Trigger</indexed-entity>
+                </indexed-entities>
+            </indexing>
+            <persistence>
+                <file-store/>
+            </persistence>
+        </local-cache>
+    </cache-container>
+</infinispan>
diff --git 
a/kogito-apps-quarkus/jobs-service-quarkus/jobs-service-infinispan/src/test/java/org/kie/kogito/jobs/service/repository/infinispan/InfinispanConfigurationTest.java
 
b/kogito-apps-quarkus/jobs-service-quarkus/jobs-service-infinispan/src/test/java/org/kie/kogito/jobs/service/repository/infinispan/InfinispanConfigurationTest.java
index 1e1b2c264e1..e9a3261e6f0 100644
--- 
a/kogito-apps-quarkus/jobs-service-quarkus/jobs-service-infinispan/src/test/java/org/kie/kogito/jobs/service/repository/infinispan/InfinispanConfigurationTest.java
+++ 
b/kogito-apps-quarkus/jobs-service-quarkus/jobs-service-infinispan/src/test/java/org/kie/kogito/jobs/service/repository/infinispan/InfinispanConfigurationTest.java
@@ -20,6 +20,7 @@ package org.kie.kogito.jobs.service.repository.infinispan;
 
 import org.infinispan.client.hotrod.RemoteCache;
 import org.infinispan.client.hotrod.RemoteCacheManager;
+import org.infinispan.commons.marshall.ProtoStreamMarshaller;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
@@ -53,6 +54,7 @@ class InfinispanConfigurationTest {
             @Mock Instance<RemoteCacheManager> instance,
             @Mock RemoteCache<Object, Object> cache) {
         when(instance.get()).thenReturn(remoteCacheManager);
+        when(remoteCacheManager.getMarshaller()).thenReturn(new 
ProtoStreamMarshaller());
         
when(remoteCacheManager.getCache(InfinispanConfiguration.Caches.JOB_DETAILS)).thenReturn(cache);
 
         assertThat(tested.isInitialized()).isFalse();
diff --git 
a/kogito-codegen-modules/kogito-codegen-processes/src/main/resources/class-templates/persistence/ProtostreamObjectMarshallerJavaTemplate.java
 
b/kogito-codegen-modules/kogito-codegen-processes/src/main/resources/class-templates/persistence/ProtostreamObjectMarshallerJavaTemplate.java
index 8651c502d5b..accb0e8a9b9 100644
--- 
a/kogito-codegen-modules/kogito-codegen-processes/src/main/resources/class-templates/persistence/ProtostreamObjectMarshallerJavaTemplate.java
+++ 
b/kogito-codegen-modules/kogito-codegen-processes/src/main/resources/class-templates/persistence/ProtostreamObjectMarshallerJavaTemplate.java
@@ -27,6 +27,7 @@ import org.infinispan.protostream.config.Configuration;
 import org.infinispan.protostream.impl.SerializationContextImpl;
 import org.jbpm.flow.serialization.ObjectMarshallerStrategy;
 import org.jbpm.flow.serialization.ProcessInstanceMarshallerException;
+import org.jbpm.flow.serialization.marshaller.SerializableMarshallerProvider;
 
 import com.google.protobuf.Any;
 import com.google.protobuf.ByteString;
@@ -38,7 +39,9 @@ public class ProtostreamObjectMarshaller implements 
ObjectMarshallerStrategy {
 
     public ProtostreamObjectMarshaller() {
         context = new 
SerializationContextImpl(Configuration.builder().build());
-
+        // ProtoStream 6 no longer indexes interface-typed marshallers by Java 
class; this provider
+        // keeps Serializable-typed variables resolvable (see 
SerializableMarshallerProvider).
+        context.registerMarshallerProvider(new 
SerializableMarshallerProvider());
     }
 
     @Override
diff --git 
a/kogito-jbpm/process-serialization-protobuf/src/main/java/org/jbpm/flow/serialization/marshaller/SerializableMarshallerProvider.java
 
b/kogito-jbpm/process-serialization-protobuf/src/main/java/org/jbpm/flow/serialization/marshaller/SerializableMarshallerProvider.java
new file mode 100644
index 00000000000..7e6297a9374
--- /dev/null
+++ 
b/kogito-jbpm/process-serialization-protobuf/src/main/java/org/jbpm/flow/serialization/marshaller/SerializableMarshallerProvider.java
@@ -0,0 +1,51 @@
+/*
+ * 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.jbpm.flow.serialization.marshaller;
+
+import java.io.Serializable;
+
+import org.infinispan.protostream.BaseMarshaller;
+import org.infinispan.protostream.SerializationContext;
+
+/**
+ * Restores marshaller resolution for {@link Serializable}-typed variables on 
ProtoStream 6+.
+ * <p>
+ * Up to ProtoStream 5, registering {@link 
SerializableProtostreamBaseMarshaller} also indexed it
+ * under its Java type, so lookups by {@code Serializable.class} (as generated 
message marshallers
+ * perform for {@code kogito.Serializable} fields) resolved it. ProtoStream 6 
no longer indexes
+ * interface types, so this provider answers those class-based lookups instead.
+ * <p>
+ * {@link SerializationContext.MarshallerProvider} is deprecated in favor of 
the instance-based
+ * provider, but remains the only hook consulted for lookups where just the 
declared class is known.
+ */
+@SuppressWarnings("deprecation")
+public class SerializableMarshallerProvider implements 
SerializationContext.MarshallerProvider {
+
+    private final SerializableProtostreamBaseMarshaller marshaller = new 
SerializableProtostreamBaseMarshaller();
+
+    @Override
+    public BaseMarshaller<?> getMarshaller(String typeName) {
+        return marshaller.getTypeName().equals(typeName) ? marshaller : null;
+    }
+
+    @Override
+    public BaseMarshaller<?> getMarshaller(Class<?> javaClass) {
+        return Serializable.class.isAssignableFrom(javaClass) ? marshaller : 
null;
+    }
+}
diff --git 
a/kogito-jitexecutor/jitexecutor-runner/src/main/resources/application.properties
 
b/kogito-jitexecutor/jitexecutor-runner/src/main/resources/application.properties
index 0dfac610c5e..81aca14cafa 100644
--- 
a/kogito-jitexecutor/jitexecutor-runner/src/main/resources/application.properties
+++ 
b/kogito-jitexecutor/jitexecutor-runner/src/main/resources/application.properties
@@ -17,7 +17,7 @@
 # under the License.
 #
 
-quarkus.http.cors=true
+quarkus.http.cors.enabled=true
 
 quarkus.swagger-ui.always-include=true
 
diff --git 
a/kogito-quarkus/addons/events/mongodb/runtime/src/test/java/org/kie/kogito/events/mongodb/MockMongoClient.java
 
b/kogito-quarkus/addons/events/mongodb/runtime/src/test/java/org/kie/kogito/events/mongodb/MockMongoClient.java
index d7232476c43..940819f2132 100644
--- 
a/kogito-quarkus/addons/events/mongodb/runtime/src/test/java/org/kie/kogito/events/mongodb/MockMongoClient.java
+++ 
b/kogito-quarkus/addons/events/mongodb/runtime/src/test/java/org/kie/kogito/events/mongodb/MockMongoClient.java
@@ -27,6 +27,7 @@ import org.bson.conversions.Bson;
 
 import com.mongodb.ClientBulkWriteException;
 import com.mongodb.ClientSessionOptions;
+import com.mongodb.MongoDriverInformation;
 import com.mongodb.ReadConcern;
 import com.mongodb.ReadPreference;
 import com.mongodb.WriteConcern;
@@ -77,6 +78,11 @@ public class MockMongoClient implements MongoClient {
         return null;
     }
 
+    @Override
+    public void appendMetadata(MongoDriverInformation driverInformation) {
+        // no-op test stub
+    }
+
     @Override
     public Long getTimeout(TimeUnit timeUnit) {
         return 0L;
diff --git 
a/kogito-quarkus/addons/knative/eventing/integration-tests/src/test/java/org/kie/kogito/addons/quarkus/knative/eventing/AbstractKSinkInjectionHealthCheckIT.java
 
b/kogito-quarkus/addons/knative/eventing/integration-tests/src/test/java/org/kie/kogito/addons/quarkus/knative/eventing/AbstractKSinkInjectionHealthCheckIT.java
index 9cb1d1b6b8a..b2b9808b9d2 100644
--- 
a/kogito-quarkus/addons/knative/eventing/integration-tests/src/test/java/org/kie/kogito/addons/quarkus/knative/eventing/AbstractKSinkInjectionHealthCheckIT.java
+++ 
b/kogito-quarkus/addons/knative/eventing/integration-tests/src/test/java/org/kie/kogito/addons/quarkus/knative/eventing/AbstractKSinkInjectionHealthCheckIT.java
@@ -18,22 +18,12 @@
  */
 package org.kie.kogito.addons.quarkus.knative.eventing;
 
-import org.eclipse.microprofile.config.Config;
-import org.eclipse.microprofile.config.ConfigProvider;
 import org.hamcrest.Matcher;
-import org.junit.jupiter.api.BeforeEach;
 
 import static io.restassured.RestAssured.given;
 
 abstract class AbstractKSinkInjectionHealthCheckIT {
 
-    Config config;
-
-    @BeforeEach
-    void setUp() {
-        config = ConfigProvider.getConfig();
-    }
-
     protected void assertHealthChecks(Matcher<?> matcher) {
         given()
                 .when()
diff --git 
a/kogito-quarkus/addons/knative/eventing/integration-tests/src/test/java/org/kie/kogito/addons/quarkus/knative/eventing/KSinkInjectionHealthCheckDefaultConfigIT.java
 
b/kogito-quarkus/addons/knative/eventing/integration-tests/src/test/java/org/kie/kogito/addons/quarkus/knative/eventing/KSinkInjectionHealthCheckDefaultConfigIT.java
index 1a35af5f56b..b10f7fdfa63 100644
--- 
a/kogito-quarkus/addons/knative/eventing/integration-tests/src/test/java/org/kie/kogito/addons/quarkus/knative/eventing/KSinkInjectionHealthCheckDefaultConfigIT.java
+++ 
b/kogito-quarkus/addons/knative/eventing/integration-tests/src/test/java/org/kie/kogito/addons/quarkus/knative/eventing/KSinkInjectionHealthCheckDefaultConfigIT.java
@@ -23,10 +23,8 @@ import org.junit.jupiter.api.Test;
 import io.quarkus.test.junit.QuarkusIntegrationTest;
 import io.restassured.RestAssured;
 
-import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
 import static org.hamcrest.Matchers.hasEntry;
 import static org.hamcrest.Matchers.hasItems;
-import static 
org.kie.kogito.addons.quarkus.knative.eventing.KSinkInjectionHealthCheck.CONFIG_ALIAS;
 
 @QuarkusIntegrationTest
 class KSinkInjectionHealthCheckDefaultConfigIT extends 
AbstractKSinkInjectionHealthCheckIT {
@@ -37,7 +35,6 @@ class KSinkInjectionHealthCheckDefaultConfigIT extends 
AbstractKSinkInjectionHea
 
     @Test
     void defaultKSinkInjectionHealthConfiguration() {
-        assertThat(config.getOptionalValue(CONFIG_ALIAS, 
Boolean.class)).isEmpty();
         assertHealthChecks(hasItems(hasEntry("name", 
KSinkInjectionHealthCheck.NAME)));
     }
 }
diff --git 
a/kogito-quarkus/addons/knative/eventing/integration-tests/src/test/java/org/kie/kogito/addons/quarkus/knative/eventing/KSinkInjectionHealthCheckDisabledIT.java
 
b/kogito-quarkus/addons/knative/eventing/integration-tests/src/test/java/org/kie/kogito/addons/quarkus/knative/eventing/KSinkInjectionHealthCheckDisabledIT.java
index 21e708b59d2..cd06fdcd1d9 100644
--- 
a/kogito-quarkus/addons/knative/eventing/integration-tests/src/test/java/org/kie/kogito/addons/quarkus/knative/eventing/KSinkInjectionHealthCheckDisabledIT.java
+++ 
b/kogito-quarkus/addons/knative/eventing/integration-tests/src/test/java/org/kie/kogito/addons/quarkus/knative/eventing/KSinkInjectionHealthCheckDisabledIT.java
@@ -24,11 +24,9 @@ import io.quarkus.test.junit.QuarkusIntegrationTest;
 import io.quarkus.test.junit.TestProfile;
 import io.restassured.RestAssured;
 
-import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
 import static org.hamcrest.Matchers.hasEntry;
 import static org.hamcrest.Matchers.hasItems;
 import static org.hamcrest.Matchers.not;
-import static 
org.kie.kogito.addons.quarkus.knative.eventing.KSinkInjectionHealthCheck.CONFIG_ALIAS;
 
 @QuarkusIntegrationTest
 @TestProfile(KSinkInjectionHealthCheckDisabledProfile.class)
@@ -40,7 +38,6 @@ class KSinkInjectionHealthCheckDisabledIT extends 
AbstractKSinkInjectionHealthCh
 
     @Test
     void kSinkInjectionHealthDisabled() {
-        assertThat(config.getOptionalValue(CONFIG_ALIAS, 
Boolean.class)).hasValue(false);
         assertHealthChecks(not(hasItems(hasEntry("name", 
KSinkInjectionHealthCheck.NAME))));
     }
 }
diff --git 
a/kogito-quarkus/addons/knative/eventing/integration-tests/src/test/java/org/kie/kogito/addons/quarkus/knative/eventing/KSinkInjectionHealthCheckEnabledIT.java
 
b/kogito-quarkus/addons/knative/eventing/integration-tests/src/test/java/org/kie/kogito/addons/quarkus/knative/eventing/KSinkInjectionHealthCheckEnabledIT.java
index 81eb53767c4..17031e3193f 100644
--- 
a/kogito-quarkus/addons/knative/eventing/integration-tests/src/test/java/org/kie/kogito/addons/quarkus/knative/eventing/KSinkInjectionHealthCheckEnabledIT.java
+++ 
b/kogito-quarkus/addons/knative/eventing/integration-tests/src/test/java/org/kie/kogito/addons/quarkus/knative/eventing/KSinkInjectionHealthCheckEnabledIT.java
@@ -24,10 +24,8 @@ import io.quarkus.test.junit.QuarkusIntegrationTest;
 import io.quarkus.test.junit.TestProfile;
 import io.restassured.RestAssured;
 
-import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
 import static org.hamcrest.Matchers.hasEntry;
 import static org.hamcrest.Matchers.hasItems;
-import static 
org.kie.kogito.addons.quarkus.knative.eventing.KSinkInjectionHealthCheck.CONFIG_ALIAS;
 
 @QuarkusIntegrationTest
 @TestProfile(KSinkInjectionHealthCheckEnabledProfile.class)
@@ -39,7 +37,6 @@ class KSinkInjectionHealthCheckEnabledIT extends 
AbstractKSinkInjectionHealthChe
 
     @Test
     void kSinkInjectionHealthEnabled() {
-        assertThat(config.getOptionalValue(CONFIG_ALIAS, 
Boolean.class)).hasValue(true);
         assertHealthChecks(hasItems(hasEntry("name", 
KSinkInjectionHealthCheck.NAME)));
     }
 }
diff --git 
a/kogito-quarkus/addons/messaging/common/src/test/java/org/kie/kogito/addon/quarkus/messaging/common/QuarkusEventThreadPoolTest.java
 
b/kogito-quarkus/addons/messaging/common/src/test/java/org/kie/kogito/addon/quarkus/messaging/common/QuarkusEventThreadPoolTest.java
index fdf396aa9a1..8bc6a35f4f4 100644
--- 
a/kogito-quarkus/addons/messaging/common/src/test/java/org/kie/kogito/addon/quarkus/messaging/common/QuarkusEventThreadPoolTest.java
+++ 
b/kogito-quarkus/addons/messaging/common/src/test/java/org/kie/kogito/addon/quarkus/messaging/common/QuarkusEventThreadPoolTest.java
@@ -20,7 +20,6 @@ package org.kie.kogito.addon.quarkus.messaging.common;
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.concurrent.Callable;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.ExecutionException;
 import java.util.concurrent.Future;
@@ -116,17 +115,24 @@ public class QuarkusEventThreadPoolTest {
     private void testIt(int numThreads, int queueSize, int count) throws 
InterruptedException, ExecutionException {
         QuarkusEventThreadPool executor = new 
QuarkusEventThreadPool(numThreads, queueSize, controller, CHANNEL_NAME);
         final CountDownLatch latch = new CountDownLatch(count);
-        List<Callable<Integer>> runnables = new ArrayList<>();
-        for (int i = 0; i < count; i++) {
-            final int temp = i;
-            runnables.add(() -> {
-                latch.countDown();
-                return temp + 1;
-            });
+        // Hold every task that reaches a worker thread until all of them have 
been submitted. Otherwise whether the
+        // pool grows up to numThreads with a full queue, and therefore 
whether backpressure kicks in at all, depends
+        // on the workers draining the queue slower than this thread fills it, 
which is not guaranteed under load.
+        final CountDownLatch gate = new CountDownLatch(1);
+        List<Future<Integer>> answers = new ArrayList<>();
+        try {
+            for (int i = 0; i < count; i++) {
+                final int temp = i;
+                answers.add(executor.submit(() -> {
+                    gate.await();
+                    latch.countDown();
+                    return temp + 1;
+                }));
+            }
+        } finally {
+            gate.countDown();
         }
 
-        List<Future<Integer>> answers = executor.invokeAll(runnables, 5, 
TimeUnit.MINUTES);
-
         // Wait for all tasks to executed
         assertTrue(latch.await(1, TimeUnit.MINUTES));
         assertEquals(0, latch.getCount());
diff --git a/kogito-quarkus/bom/pom.xml b/kogito-quarkus/bom/pom.xml
index 4a509103963..96fc280bfbe 100644
--- a/kogito-quarkus/bom/pom.xml
+++ b/kogito-quarkus/bom/pom.xml
@@ -31,17 +31,69 @@
     <!-- Used to define which poms are allowed to have dependencyManagement 
sections. This is to enforce the convention that only the root pom should have 
dependencyManagement, and all other poms should inherit from it. -->
     <allowedPomsList>org.kie.kogito:kogito-quarkus-bom</allowedPomsList>
     
<quarkus.logging.manager>org.jboss.logmanager.LogManager</quarkus.logging.manager>
-    <version.io.quarkus>3.27.5.1</version.io.quarkus>
+    <version.io.quarkus>3.33.3.2</version.io.quarkus>
     
<version.io.quarkus.quarkus-test>${version.io.quarkus}</version.io.quarkus.quarkus-test>
     
<version.io.quarkiverse.jackson-jq>2.4.0</version.io.quarkiverse.jackson-jq>
-    
<version.io.quarkiverse.openapi.generator>2.16.0-lts</version.io.quarkiverse.openapi.generator>
+    
<version.io.quarkiverse.openapi.generator>2.17.0-lts</version.io.quarkiverse.openapi.generator>
     <version.io.quarkiverse.asyncapi>1.0.5</version.io.quarkiverse.asyncapi>
-    
<version.io.quarkiverse.reactivemessaging.http>2.5.0-lts</version.io.quarkiverse.reactivemessaging.http>
+    
<version.io.quarkiverse.reactivemessaging.http>2.7.1</version.io.quarkiverse.reactivemessaging.http>
     
<version.io.quarkiverse.embedded.postgresql>0.8.0</version.io.quarkiverse.embedded.postgresql>
-    <version.io.quarkus.camel>3.27.5.1</version.io.quarkus.camel>
-  </properties>
+    <version.io.quarkus.camel>3.33.2</version.io.quarkus.camel>
+    <!-- Quarkus-platform-aligned pins. These live here, not in kie-parent, so 
that the Quarkus upgrade does not
+         change what the Spring Boot side resolves. -->
+    <version.io.grpc>1.81.0</version.io.grpc>
+    
<version.io.smallrye.reactive.messaging.in.memory>4.33.0</version.io.smallrye.reactive.messaging.in.memory>
+    <version.com.google.guava>33.5.0-jre</version.com.google.guava>
+    <version.io.smallrye.mutiny>3.1.1</version.io.smallrye.mutiny>
+    <version.org.hibernate>7.2.19.Final</version.org.hibernate>
+    <version.org.postgresql>42.7.13</version.org.postgresql>
+    <!-- Quarkus 3.33 hard requirements: smallrye-config 3.16 
(quarkus-core/junit-config reference io.smallrye.config.Config)
+         and jandex 3.5 (arc-processor uses 
MethodParameterInfo.nameOrDefault). The two smallrye-config properties are one
+         artifact family in kie-parent (they map to smallrye-config-core / 
smallrye-config) and must move together. -->
+    <version.io.smallrye-config>3.16.0</version.io.smallrye-config>
+    <version.io.smallrye.config.core>3.16.0</version.io.smallrye.config.core>
+    <version.io.smallrye.jandex>3.5.3</version.io.smallrye.jandex>
+    <!-- quarkus-bom alignment; smallrye-open-api 4.2.4 requires jandex 3.5, 
so it is pinned in the same scope as jandex. -->
+    <version.io.smallrye-open-api>4.2.4</version.io.smallrye-open-api>
+    <version.io.smallrye.openapi.core>4.2.4</version.io.smallrye.openapi.core>
+    <!-- quarkus-bom alignment; must match the bson/mongodb-driver-core 
version quarkus-bom supplies. -->
+    <version.mongodb-driver-sync>5.6.4</version.mongodb-driver-sync>
+    <!-- Framework-specific pins moved out of kie-parent: only this tree 
declares these artifacts. -->
+    <version.io.smallrye-health>4.3.0</version.io.smallrye-health>
+    <version.com.github.stephenc.jcip>1.0-1</version.com.github.stephenc.jcip>
+    <version.org.graalvm.nativeimage>23.1.2</version.org.graalvm.nativeimage>
+    <version.org.jredisearch>2.2.0</version.org.jredisearch>
+    <version.org.json>20231013</version.org.json>
+</properties>
   <dependencyManagement>
     <dependencies>
+      <dependency>
+        <groupId>com.github.stephenc.jcip</groupId>
+        <artifactId>jcip-annotations</artifactId>
+        <version>${version.com.github.stephenc.jcip}</version>
+        <scope>test</scope>
+      </dependency>
+      <dependency>
+        <groupId>org.graalvm.nativeimage</groupId>
+        <artifactId>svm</artifactId>
+        <version>${version.org.graalvm.nativeimage}</version>
+      </dependency>
+      <dependency>
+        <groupId>com.redislabs</groupId>
+        <artifactId>jredisearch</artifactId>
+        <version>${version.org.jredisearch}</version>
+        <exclusions>
+          <exclusion>
+            <groupId>org.json</groupId>
+            <artifactId>json</artifactId>
+          </exclusion>
+        </exclusions>
+      </dependency>
+      <dependency>
+        <groupId>org.json</groupId>
+        <artifactId>json</artifactId>
+        <version>${version.org.json}</version>
+      </dependency>
       <dependency>
         <groupId>io.quarkiverse.asyncapi</groupId>
         <artifactId>quarkus-asyncapi</artifactId>
@@ -1383,6 +1435,7 @@
           <groupId>io.quarkus</groupId>
           <artifactId>quarkus-maven-plugin</artifactId>
           <version>${version.io.quarkus}</version>
+          <extensions>true</extensions>
         </plugin>
         <plugin>
           <groupId>io.quarkus</groupId>
diff --git 
a/kogito-quarkus/extensions/kogito-quarkus-decisions-extension/kogito-quarkus-decisions-integration-test-hot-reload/pom.xml
 
b/kogito-quarkus/extensions/kogito-quarkus-decisions-extension/kogito-quarkus-decisions-integration-test-hot-reload/pom.xml
index 361177963ae..d3a576ad7f8 100644
--- 
a/kogito-quarkus/extensions/kogito-quarkus-decisions-extension/kogito-quarkus-decisions-integration-test-hot-reload/pom.xml
+++ 
b/kogito-quarkus/extensions/kogito-quarkus-decisions-extension/kogito-quarkus-decisions-integration-test-hot-reload/pom.xml
@@ -80,6 +80,11 @@
             <artifactId>rest-assured</artifactId>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.kie.kogito</groupId>
+            <artifactId>kogito-test-utils</artifactId>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 
     <build>
diff --git 
a/kogito-quarkus/extensions/kogito-quarkus-decisions-extension/kogito-quarkus-decisions-integration-test-hot-reload/src/test/java/org/kie/kogito/quarkus/decisions/hotreload/NewFileHotReloadIT.java
 
b/kogito-quarkus/extensions/kogito-quarkus-decisions-extension/kogito-quarkus-decisions-integration-test-hot-reload/src/test/java/org/kie/kogito/quarkus/decisions/hotreload/NewFileHotReloadIT.java
index 222941bbd40..dd22a18c8dd 100644
--- 
a/kogito-quarkus/extensions/kogito-quarkus-decisions-extension/kogito-quarkus-decisions-integration-test-hot-reload/src/test/java/org/kie/kogito/quarkus/decisions/hotreload/NewFileHotReloadIT.java
+++ 
b/kogito-quarkus/extensions/kogito-quarkus-decisions-extension/kogito-quarkus-decisions-integration-test-hot-reload/src/test/java/org/kie/kogito/quarkus/decisions/hotreload/NewFileHotReloadIT.java
@@ -22,11 +22,12 @@ import java.io.File;
 import java.io.IOException;
 import java.nio.file.Files;
 
-import org.eclipse.microprofile.config.ConfigProvider;
 import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.asset.StringAsset;
 import org.jboss.shrinkwrap.api.spec.JavaArchive;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
+import org.kie.kogito.test.utils.SocketUtils;
 
 import io.quarkus.test.QuarkusDevModeTest;
 import io.restassured.RestAssured;
@@ -47,14 +48,19 @@ public class NewFileHotReloadIT {
     private static final String RESOURCE_FILE_PATH = PACKAGE.replace('.', '/');
     private static final String DMN_RESOURCE_FILE = RESOURCE_FILE_PATH + 
"/TrafficViolation.dmn";
 
+    // Pick a free port up front and hand it to the dev-mode app through the 
archive's
+    // application.properties; since Quarkus 3.33 dev mode no longer writes 
its resolved
+    // port back for tests to read.
+    final static int httpPort = SocketUtils.findAvailablePort();
+
     @RegisterExtension
     final static QuarkusDevModeTest test = new 
QuarkusDevModeTest().setArchiveProducer(
             () -> ShrinkWrap.create(JavaArchive.class)
+                    .addAsResource(new 
StringAsset("quarkus.kogito.devservices.enabled=false\nquarkus.http.port=" + 
httpPort), "application.properties")
                     .addAsResource("adult.txt", DMN_RESOURCE_FILE + 
".dummy")); // add a dummy file only to enforce creation of resource folder
 
     @Test
     void newFileTest() throws IOException {
-        String httpPort = 
ConfigProvider.getConfig().getValue("quarkus.http.port", String.class);
         ClassLoader classLoader = getClass().getClassLoader();
         File file = new 
File(requireNonNull(classLoader.getResource("TrafficViolation.txt")).getFile());
         String xml = Files.readString(file.toPath());
diff --git 
a/kogito-quarkus/extensions/kogito-quarkus-decisions-extension/kogito-quarkus-decisions-integration-test-hot-reload/src/test/java/org/kie/kogito/quarkus/decisions/hotreload/SimpleHotReloadIT.java
 
b/kogito-quarkus/extensions/kogito-quarkus-decisions-extension/kogito-quarkus-decisions-integration-test-hot-reload/src/test/java/org/kie/kogito/quarkus/decisions/hotreload/SimpleHotReloadIT.java
index 38b644f69fb..4f279bd0f30 100644
--- 
a/kogito-quarkus/extensions/kogito-quarkus-decisions-extension/kogito-quarkus-decisions-integration-test-hot-reload/src/test/java/org/kie/kogito/quarkus/decisions/hotreload/SimpleHotReloadIT.java
+++ 
b/kogito-quarkus/extensions/kogito-quarkus-decisions-extension/kogito-quarkus-decisions-integration-test-hot-reload/src/test/java/org/kie/kogito/quarkus/decisions/hotreload/SimpleHotReloadIT.java
@@ -18,11 +18,12 @@
  */
 package org.kie.kogito.quarkus.decisions.hotreload;
 
-import org.eclipse.microprofile.config.ConfigProvider;
 import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.asset.StringAsset;
 import org.jboss.shrinkwrap.api.spec.JavaArchive;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
+import org.kie.kogito.test.utils.SocketUtils;
 
 import io.quarkus.test.QuarkusDevModeTest;
 import io.restassured.RestAssured;
@@ -42,9 +43,15 @@ public class SimpleHotReloadIT {
     private static final String RESOURCE_FILE_PATH = PACKAGE.replace('.', '/');
     private static final String DMN_RESOURCE_FILE = RESOURCE_FILE_PATH + 
"/TrafficViolation.dmn";
 
+    // Pick a free port up front and hand it to the dev-mode app through the 
archive's
+    // application.properties; since Quarkus 3.33 dev mode no longer writes 
its resolved
+    // port back for tests to read.
+    final static int httpPort = SocketUtils.findAvailablePort();
+
     @RegisterExtension
     final static QuarkusDevModeTest test = new 
QuarkusDevModeTest().setArchiveProducer(
             () -> ShrinkWrap.create(JavaArchive.class)
+                    .addAsResource(new 
StringAsset("quarkus.kogito.devservices.enabled=false\nquarkus.http.port=" + 
httpPort), "application.properties")
                     .addAsResource("TrafficViolation.txt", DMN_RESOURCE_FILE));
 
     @Test
@@ -57,7 +64,6 @@ public class SimpleHotReloadIT {
     }
 
     private void executeTest(String path) {
-        String httpPort = 
ConfigProvider.getConfig().getValue("quarkus.http.port", String.class);
         ValidatableResponse response = given()
                 .baseUri("http://localhost:"; + httpPort)
                 .contentType(ContentType.JSON)
diff --git 
a/kogito-quarkus/extensions/kogito-quarkus-decisions-extension/kogito-quarkus-decisions-integration-test-hot-reload/src/test/java/org/kie/kogito/quarkus/decisions/hotreload/SimpleModifyHotReloadIT.java
 
b/kogito-quarkus/extensions/kogito-quarkus-decisions-extension/kogito-quarkus-decisions-integration-test-hot-reload/src/test/java/org/kie/kogito/quarkus/decisions/hotreload/SimpleModifyHotReloadIT.java
index 6e67d9fe0f1..6b2728e1eda 100644
--- 
a/kogito-quarkus/extensions/kogito-quarkus-decisions-extension/kogito-quarkus-decisions-integration-test-hot-reload/src/test/java/org/kie/kogito/quarkus/decisions/hotreload/SimpleModifyHotReloadIT.java
+++ 
b/kogito-quarkus/extensions/kogito-quarkus-decisions-extension/kogito-quarkus-decisions-integration-test-hot-reload/src/test/java/org/kie/kogito/quarkus/decisions/hotreload/SimpleModifyHotReloadIT.java
@@ -18,11 +18,12 @@
  */
 package org.kie.kogito.quarkus.decisions.hotreload;
 
-import org.eclipse.microprofile.config.ConfigProvider;
 import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.asset.StringAsset;
 import org.jboss.shrinkwrap.api.spec.JavaArchive;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
+import org.kie.kogito.test.utils.SocketUtils;
 
 import io.quarkus.test.QuarkusDevModeTest;
 import io.restassured.RestAssured;
@@ -42,11 +43,17 @@ public class SimpleModifyHotReloadIT {
     private static final String RESOURCE_FILE_PATH = PACKAGE.replace('.', '/');
     private static final String DMN_RESOURCE_FILE = RESOURCE_FILE_PATH + 
"/TrafficViolation.dmn";
 
+    // Pick a free port up front and hand it to the dev-mode app through the 
archive's
+    // application.properties; since Quarkus 3.33 dev mode no longer writes 
its resolved
+    // port back for tests to read.
+    final static int httpPort = SocketUtils.findAvailablePort();
+
     @RegisterExtension
     final static QuarkusDevModeTest test =
             new QuarkusDevModeTest().setArchiveProducer(
                     () -> ShrinkWrap.create(JavaArchive.class)
-                            
.addAsResource("application.properties.stronglytyped", 
"/application.properties")
+                            .addAsResource(new 
StringAsset("kogito.decisions.stronglytyped=true\nquarkus.kogito.devservices.enabled=false\nquarkus.http.port="
 + httpPort),
+                                    "application.properties")
                             .addAsResource("TrafficViolation.txt", 
DMN_RESOURCE_FILE));
 
     @Test
@@ -66,7 +73,6 @@ public class SimpleModifyHotReloadIT {
     }
 
     private void executeTest(String result) {
-        String httpPort = 
ConfigProvider.getConfig().getValue("quarkus.http.port", String.class);
         ValidatableResponse response = given()
                 .baseUri("http://localhost:"; + httpPort)
                 .contentType(ContentType.JSON)
@@ -89,4 +95,5 @@ public class SimpleModifyHotReloadIT {
         response.statusCode(200)
                 .body("'Should the driver be suspended?'", is(result));
     }
+
 }
diff --git 
a/kogito-quarkus/extensions/kogito-quarkus-decisions-extension/kogito-quarkus-decisions-integration-test-hot-reload/src/test/resources/application.properties
 
b/kogito-quarkus/extensions/kogito-quarkus-decisions-extension/kogito-quarkus-decisions-integration-test-hot-reload/src/test/resources/application.properties
deleted file mode 100644
index 7dffce7d018..00000000000
--- 
a/kogito-quarkus/extensions/kogito-quarkus-decisions-extension/kogito-quarkus-decisions-integration-test-hot-reload/src/test/resources/application.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# 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.
-#
-
-quarkus.http.port=0
-quarkus.kogito.devservices.enabled=false
\ No newline at end of file
diff --git 
a/kogito-quarkus/extensions/kogito-quarkus-decisions-extension/kogito-quarkus-decisions-integration-test-hot-reload/src/test/resources/application.properties.stronglytyped
 
b/kogito-quarkus/extensions/kogito-quarkus-decisions-extension/kogito-quarkus-decisions-integration-test-hot-reload/src/test/resources/application.properties.stronglytyped
deleted file mode 100644
index 4eda6e93878..00000000000
--- 
a/kogito-quarkus/extensions/kogito-quarkus-decisions-extension/kogito-quarkus-decisions-integration-test-hot-reload/src/test/resources/application.properties.stronglytyped
+++ /dev/null
@@ -1,22 +0,0 @@
-#
-# 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.
-#
-
-quarkus.http.port=0
-kogito.decisions.stronglytyped=true
-quarkus.kogito.devservices.enabled=false
diff --git 
a/kogito-quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common-deployment/src/main/java/org/kie/kogito/quarkus/common/deployment/KogitoAssetsProcessor.java
 
b/kogito-quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common-deployment/src/main/java/org/kie/kogito/quarkus/common/deployment/KogitoAssetsProcessor.java
index 9a1f38d4148..06a809cfbd6 100644
--- 
a/kogito-quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common-deployment/src/main/java/org/kie/kogito/quarkus/common/deployment/KogitoAssetsProcessor.java
+++ 
b/kogito-quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common-deployment/src/main/java/org/kie/kogito/quarkus/common/deployment/KogitoAssetsProcessor.java
@@ -164,6 +164,7 @@ public class KogitoAssetsProcessor {
             List<KogitoAddonsPreGeneratedSourcesBuildItem> addonsPreSources,
             List<KogitoAddonsPostGeneratedSourcesBuildItem> addonsPostSources,
             KogitoBuildContextBuildItem contextBuildItem,
+            Capabilities capabilities,
             BuildProducer<GeneratedBeanBuildItem> generatedBeans,
             BuildProducer<GeneratedJaxRsResourceBuildItem> jaxrsProducer,
             BuildProducer<AdditionalStaticResourceBuildItem> staticResProducer,
@@ -197,6 +198,7 @@ public class KogitoAssetsProcessor {
         // build Java source code and register the generated beans
         Optional<KogitoGeneratedClassesBuildItem> optionalIndex = 
indexGeneratedBeanBuildItemWithRestResources(
                 context,
+                capabilities,
                 generatedJavaSourcesFiles,
                 generatedBeanBuildItems,
                 generatedBeans,
@@ -319,16 +321,22 @@ public class KogitoAssetsProcessor {
 
     private Optional<KogitoGeneratedClassesBuildItem> 
indexGeneratedBeanBuildItemWithRestResources(
             KogitoBuildContext context,
+            Capabilities capabilities,
             Collection<GeneratedFile> generatedFiles,
             Collection<GeneratedBeanBuildItem> generatedBeanBuildItems,
             BuildProducer<GeneratedBeanBuildItem> generatedBeans,
             BuildProducer<GeneratedJaxRsResourceBuildItem> jaxrsProducer) 
throws IOException {
 
-        generatedBeanBuildItems.forEach(generatedBeans::produce);
         Set<String> restResourceClassNameSet = generatedFiles.stream()
                 .filter(file -> file.type().equals(REST))
                 .map(file -> toClassName(file.path().toString()))
                 .collect(Collectors.toSet());
+        // Reactive REST re-registers JaxRs resources as beans 
(duplicate-class check); classic ignores that channel, so REST
+        // classes need bean registration there. Capability.REST comes from 
BOTH stacks; only RESTEASY_REACTIVE is reactive-specific.
+        boolean reactiveRestPresent = 
capabilities.isPresent(Capability.RESTEASY_REACTIVE);
+        generatedBeanBuildItems.stream()
+                .filter(b -> !reactiveRestPresent || 
!restResourceClassNameSet.contains(b.getName()))
+                .forEach(generatedBeans::produce);
         generatedBeanBuildItems.stream()
                 .filter(b -> restResourceClassNameSet.contains(b.getName()))
                 .forEach(b -> jaxrsProducer.produce(new 
GeneratedJaxRsResourceBuildItem(b.getName(), b.getData())));
diff --git 
a/kogito-quarkus/extensions/kogito-quarkus-rules-extension/kogito-quarkus-rules-integration-test-hot-reload/pom.xml
 
b/kogito-quarkus/extensions/kogito-quarkus-rules-extension/kogito-quarkus-rules-integration-test-hot-reload/pom.xml
index 8823e5978dc..c7bbf2e8133 100644
--- 
a/kogito-quarkus/extensions/kogito-quarkus-rules-extension/kogito-quarkus-rules-integration-test-hot-reload/pom.xml
+++ 
b/kogito-quarkus/extensions/kogito-quarkus-rules-extension/kogito-quarkus-rules-integration-test-hot-reload/pom.xml
@@ -85,6 +85,11 @@
             <artifactId>rest-assured</artifactId>
             <scope>test</scope>
         </dependency>
+        <dependency>
+            <groupId>org.kie.kogito</groupId>
+            <artifactId>kogito-test-utils</artifactId>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 
     <build>
diff --git 
a/kogito-quarkus/extensions/kogito-quarkus-rules-extension/kogito-quarkus-rules-integration-test-hot-reload/src/test/java/org/kie/kogito/quarkus/rules/hotreload/ChangePojoIT.java
 
b/kogito-quarkus/extensions/kogito-quarkus-rules-extension/kogito-quarkus-rules-integration-test-hot-reload/src/test/java/org/kie/kogito/quarkus/rules/hotreload/ChangePojoIT.java
index db260aea0ad..cd913806b63 100644
--- 
a/kogito-quarkus/extensions/kogito-quarkus-rules-extension/kogito-quarkus-rules-integration-test-hot-reload/src/test/java/org/kie/kogito/quarkus/rules/hotreload/ChangePojoIT.java
+++ 
b/kogito-quarkus/extensions/kogito-quarkus-rules-extension/kogito-quarkus-rules-integration-test-hot-reload/src/test/java/org/kie/kogito/quarkus/rules/hotreload/ChangePojoIT.java
@@ -21,12 +21,13 @@ package org.kie.kogito.quarkus.rules.hotreload;
 import java.util.List;
 import java.util.Map;
 
-import org.eclipse.microprofile.config.ConfigProvider;
 import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.asset.StringAsset;
 import org.jboss.shrinkwrap.api.spec.JavaArchive;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
 import org.kie.kogito.quarkus.rules.hotreload.newunit.Person;
+import org.kie.kogito.test.utils.SocketUtils;
 
 import io.quarkus.test.QuarkusDevModeTest;
 import io.restassured.RestAssured;
@@ -45,10 +46,16 @@ public class ChangePojoIT {
     private static final String PACKAGE = 
"org.kie.kogito.quarkus.rules.hotreload";
     private static final String RESOURCE_FILE = PACKAGE.replace('.', '/') + 
"/adult.drl";
 
+    // Pick a free port up front and hand it to the dev-mode app through the 
archive's
+    // application.properties; since Quarkus 3.33 dev mode no longer writes 
its resolved
+    // port back for tests to read.
+    final static int httpPort = SocketUtils.findAvailablePort();
+
     @RegisterExtension
     final static QuarkusDevModeTest test = new 
QuarkusDevModeTest().setArchiveProducer(
             () -> ShrinkWrap.create(JavaArchive.class)
                     .addClass(Person.class)
+                    .addAsResource(new 
StringAsset("quarkus.kogito.devservices.enabled=false\nquarkus.http.port=" + 
httpPort), "application.properties")
                     .addAsResource("drl1.txt", RESOURCE_FILE));
 
     @Test
@@ -65,8 +72,6 @@ public class ChangePojoIT {
         String personsPayload1 = 
"{\"persons\":[{\"name\":\"Mario\",\"age\":45,\"adult\":false},{\"name\":\"Sofia\",\"age\":17,\"adult\":false}]}";
         String personsPayload2 = 
"{\"persons\":[{\"name\":\"Mario\",\"surname\":\"Fusco\",\"age\":45,\"adult\":false},{\"name\":\"Sofia\",\"surname\":\"Fusco\",\"age\":17,\"adult\":false}]}";
 
-        String httpPort = 
ConfigProvider.getConfig().getValue("quarkus.http.port", String.class);
-
         List<Map> persons = given()
                 .baseUri("http://localhost:"; + httpPort)
                 .contentType(ContentType.JSON)
diff --git 
a/kogito-quarkus/extensions/kogito-quarkus-rules-extension/kogito-quarkus-rules-integration-test-hot-reload/src/test/java/org/kie/kogito/quarkus/rules/hotreload/HotReloadIT.java
 
b/kogito-quarkus/extensions/kogito-quarkus-rules-extension/kogito-quarkus-rules-integration-test-hot-reload/src/test/java/org/kie/kogito/quarkus/rules/hotreload/HotReloadIT.java
index 2f52b4af8f8..ba136678868 100644
--- 
a/kogito-quarkus/extensions/kogito-quarkus-rules-extension/kogito-quarkus-rules-integration-test-hot-reload/src/test/java/org/kie/kogito/quarkus/rules/hotreload/HotReloadIT.java
+++ 
b/kogito-quarkus/extensions/kogito-quarkus-rules-extension/kogito-quarkus-rules-integration-test-hot-reload/src/test/java/org/kie/kogito/quarkus/rules/hotreload/HotReloadIT.java
@@ -20,11 +20,12 @@ package org.kie.kogito.quarkus.rules.hotreload;
 
 import java.util.List;
 
-import org.eclipse.microprofile.config.ConfigProvider;
 import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.asset.StringAsset;
 import org.jboss.shrinkwrap.api.spec.JavaArchive;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
+import org.kie.kogito.test.utils.SocketUtils;
 
 import io.quarkus.test.QuarkusDevModeTest;
 import io.restassured.http.ContentType;
@@ -38,16 +39,22 @@ public class HotReloadIT {
     private static final String PACKAGE = 
"org.kie.kogito.quarkus.rules.hotreload";
     private static final String RESOURCE_FILE = PACKAGE.replace('.', '/') + 
"/adult.drl";
 
+    // Pick a free port up front and hand it to the dev-mode app through the 
archive's
+    // application.properties; since Quarkus 3.33 dev mode no longer writes 
its resolved
+    // port back for tests to read.
+    final static int httpPort = SocketUtils.findAvailablePort();
+
     @RegisterExtension
-    final static QuarkusDevModeTest test = new 
QuarkusDevModeTest().setArchiveProducer(
-            () -> 
ShrinkWrap.create(JavaArchive.class).addAsResource("adult.txt", RESOURCE_FILE));
+    final static QuarkusDevModeTest test = new QuarkusDevModeTest()
+            .setArchiveProducer(
+                    () -> ShrinkWrap.create(JavaArchive.class)
+                            .addAsResource(new 
StringAsset("quarkus.kogito.devservices.enabled=false\nquarkus.http.port=" + 
httpPort), "application.properties")
+                            .addAsResource("adult.txt", RESOURCE_FILE));
 
     @Test
     public void testServletChange() {
         String personsPayload = 
"{\"persons\":[{\"name\":\"Mario\",\"age\":45,\"adult\":false},{\"name\":\"Sofia\",\"age\":17,\"adult\":false}]}";
 
-        String httpPort = 
ConfigProvider.getConfig().getValue("quarkus.http.port", String.class);
-
         List<String> names = given()
                 .baseUri("http://localhost:"; + httpPort)
                 .contentType(ContentType.JSON)
diff --git 
a/kogito-quarkus/extensions/kogito-quarkus-rules-extension/kogito-quarkus-rules-integration-test-hot-reload/src/test/java/org/kie/kogito/quarkus/rules/hotreload/newunit/NewUnitIT.java
 
b/kogito-quarkus/extensions/kogito-quarkus-rules-extension/kogito-quarkus-rules-integration-test-hot-reload/src/test/java/org/kie/kogito/quarkus/rules/hotreload/newunit/NewUnitIT.java
index 5a7499b8324..4f11b5c1f6b 100644
--- 
a/kogito-quarkus/extensions/kogito-quarkus-rules-extension/kogito-quarkus-rules-integration-test-hot-reload/src/test/java/org/kie/kogito/quarkus/rules/hotreload/newunit/NewUnitIT.java
+++ 
b/kogito-quarkus/extensions/kogito-quarkus-rules-extension/kogito-quarkus-rules-integration-test-hot-reload/src/test/java/org/kie/kogito/quarkus/rules/hotreload/newunit/NewUnitIT.java
@@ -20,11 +20,12 @@ package org.kie.kogito.quarkus.rules.hotreload.newunit;
 
 import java.util.List;
 
-import org.eclipse.microprofile.config.ConfigProvider;
 import org.jboss.shrinkwrap.api.ShrinkWrap;
+import org.jboss.shrinkwrap.api.asset.StringAsset;
 import org.jboss.shrinkwrap.api.spec.JavaArchive;
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
+import org.kie.kogito.test.utils.SocketUtils;
 
 import io.quarkus.test.QuarkusDevModeTest;
 import io.restassured.http.ContentType;
@@ -56,16 +57,21 @@ public class NewUnitIT {
                     "    /persons[adult, $name: name];\n" +
                     "end";
 
+    // Pick a free port up front and hand it to the dev-mode app through the 
archive's
+    // application.properties; since Quarkus 3.33 dev mode no longer writes 
its resolved
+    // port back for tests to read.
+    final static int httpPort = SocketUtils.findAvailablePort();
+
     @RegisterExtension
     final static QuarkusDevModeTest test = new 
QuarkusDevModeTest().setArchiveProducer(
             () -> ShrinkWrap.create(JavaArchive.class)
                     .addClass(Person.class)
                     .addClass(PersonUnit.class)
+                    .addAsResource(new 
StringAsset("quarkus.kogito.devservices.enabled=false\nquarkus.http.port=" + 
httpPort), "application.properties")
                     .addAsResource("adult.txt", DRL_RESOURCE_FILE + 
".dummy")); // add a dummy file only to enforce creation of reasource folder
 
     @Test
     public void testServletChange() {
-        String httpPort = 
ConfigProvider.getConfig().getValue("quarkus.http.port", String.class);
         String personsPayload = 
"{\"persons\":[{\"name\":\"Mario\",\"age\":45,\"adult\":false},{\"name\":\"Sofia\",\"age\":17,\"adult\":false}]}";
 
         test.addResourceFile(DRL_RESOURCE_FILE, DRL_SOURCE);
diff --git 
a/kogito-quarkus/extensions/kogito-quarkus-rules-extension/kogito-quarkus-rules-integration-test-hot-reload/src/test/resources/application.properties
 
b/kogito-quarkus/extensions/kogito-quarkus-rules-extension/kogito-quarkus-rules-integration-test-hot-reload/src/test/resources/application.properties
deleted file mode 100644
index 7dffce7d018..00000000000
--- 
a/kogito-quarkus/extensions/kogito-quarkus-rules-extension/kogito-quarkus-rules-integration-test-hot-reload/src/test/resources/application.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# 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.
-#
-
-quarkus.http.port=0
-quarkus.kogito.devservices.enabled=false
\ No newline at end of file
diff --git a/kogito-springboot/bom/pom.xml b/kogito-springboot/bom/pom.xml
index f54627cdec2..50c2d73ecfb 100644
--- a/kogito-springboot/bom/pom.xml
+++ b/kogito-springboot/bom/pom.xml
@@ -52,9 +52,29 @@
          spring-boot-dependencies:4.0.7 carries the vulnerable 
jackson-databind:3.1.4.
          Remove this pin once spring-boot-dependencies imports 
jackson-databind >= 3.1.5. -->
     <version.tools.jackson.core>3.1.5</version.tools.jackson.core>
-  </properties>
+    <!-- Framework-specific pins moved out of kie-parent: only this tree 
declares these artifacts. -->
+    <version.org.spockframework>2.2-groovy-4.0</version.org.spockframework>
+</properties>
   <dependencyManagement>
     <dependencies>
+      <dependency>
+        <groupId>org.spockframework</groupId>
+        <artifactId>spock-core</artifactId>
+        <version>${version.org.spockframework}</version>
+        <scope>test</scope>
+      </dependency>
+      <!-- Infinispan must be imported here, ahead of 
spring-boot-dependencies, so the Spring Boot side gets one
+           coherent Infinispan/ProtoStream stack. kie-parent pins 
infinispan-client-hotrod/-commons/-core and
+           protostream explicitly (the shared addons are compiled against 
ProtoStream 6), while spring-boot-dependencies
+           imports infinispan-bom 15.2.6.Final — without this import the two 
mix: protostream-types 5.0.13.Final under
+           protostream 6.0.7, infinispan-counter-api 15.2.6.Final under 
infinispan-client-hotrod 16.0.13. -->
+      <dependency>
+        <groupId>org.infinispan</groupId>
+        <artifactId>infinispan-bom</artifactId>
+        <version>${version.org.infinispan}</version>
+        <type>pom</type>
+        <scope>import</scope>
+      </dependency>
       <dependency>
         <groupId>tools.jackson.core</groupId>
         <artifactId>jackson-databind</artifactId>
diff --git 
a/kogito-trusty/trusty-service/trusty-service-common/src/main/resources/META-INF/microprofile-config.properties
 
b/kogito-trusty/trusty-service/trusty-service-common/src/main/resources/META-INF/microprofile-config.properties
index da1f7f76789..9eac04cb2c8 100644
--- 
a/kogito-trusty/trusty-service/trusty-service-common/src/main/resources/META-INF/microprofile-config.properties
+++ 
b/kogito-trusty/trusty-service/trusty-service-common/src/main/resources/META-INF/microprofile-config.properties
@@ -17,7 +17,7 @@
 # under the License.
 #
 
-quarkus.http.cors=true
+quarkus.http.cors.enabled=true
 #oidc
 quarkus.oidc.enabled=true
 quarkus.oidc.tenant-enabled=false
diff --git 
a/kogito-trusty/trusty-service/trusty-service-common/src/test/resources/application.properties
 
b/kogito-trusty/trusty-service/trusty-service-common/src/test/resources/application.properties
index e574c42334c..51894a74545 100644
--- 
a/kogito-trusty/trusty-service/trusty-service-common/src/test/resources/application.properties
+++ 
b/kogito-trusty/trusty-service/trusty-service-common/src/test/resources/application.properties
@@ -17,7 +17,7 @@
 # under the License.
 #
 
-quarkus.http.cors=true
+quarkus.http.cors.enabled=true
 quarkus.oidc.enabled=false
 quarkus.oidc.tenant-enabled=false
 # Keycloak oidc
diff --git 
a/kogito-trusty/trusty-service/trusty-service-postgresql/src/test/resources/application.properties
 
b/kogito-trusty/trusty-service/trusty-service-postgresql/src/test/resources/application.properties
index 8b5680a96da..6b5cecfe67b 100644
--- 
a/kogito-trusty/trusty-service/trusty-service-postgresql/src/test/resources/application.properties
+++ 
b/kogito-trusty/trusty-service/trusty-service-postgresql/src/test/resources/application.properties
@@ -49,7 +49,7 @@ 
mp.messaging.incoming.trusty-explainability-result.value.deserializer=org.apache
 mp.messaging.incoming.trusty-explainability-result.auto.offset.reset=earliest
 
 # Security
-quarkus.http.cors=true
+quarkus.http.cors.enabled=true
 quarkus.oidc.enabled=false
 quarkus.oidc.tenant-enabled=false
 quarkus.oidc.auth-server-url=none
diff --git 
a/kogito-trusty/trusty-service/trusty-service-redis/src/test/resources/application.properties
 
b/kogito-trusty/trusty-service/trusty-service-redis/src/test/resources/application.properties
index 8d25c262857..08fb4a669d5 100644
--- 
a/kogito-trusty/trusty-service/trusty-service-redis/src/test/resources/application.properties
+++ 
b/kogito-trusty/trusty-service/trusty-service-redis/src/test/resources/application.properties
@@ -17,7 +17,7 @@
 # under the License.
 #
 
-quarkus.http.cors=true
+quarkus.http.cors.enabled=true
 quarkus.oidc.enabled=false
 quarkus.oidc.tenant-enabled=false
 quarkus.oidc.auth-server-url=none
diff --git a/optaplanner-build/optaplanner-build-parent/pom.xml 
b/optaplanner-build/optaplanner-build-parent/pom.xml
index 331ceda345f..ad9993692d3 100644
--- a/optaplanner-build/optaplanner-build-parent/pom.xml
+++ b/optaplanner-build/optaplanner-build-parent/pom.xml
@@ -49,7 +49,7 @@
     <version.org.apache.logging.log4j>2.26.1</version.org.apache.logging.log4j>
     <version.com.thoughtworks.xstream>1.4.21</version.com.thoughtworks.xstream>
     
<version.io.quarkiverse.operatorsdk>6.6.7</version.io.quarkiverse.operatorsdk>
-    <version.io.quarkus>3.27.5.1</version.io.quarkus>
+    <version.io.quarkus>3.33.3.2</version.io.quarkus>
     <version.org.apache.commons.math3>3.6.1</version.org.apache.commons.math3>
     <version.org.apache.commons.text>1.14.0</version.org.apache.commons.text>
     <version.org.apache.openjpa>4.0.0</version.org.apache.openjpa>
@@ -58,7 +58,6 @@
     <version.org.freemarker>2.3.34</version.org.freemarker>
     <version.org.jdom2>2.0.6.1</version.org.jdom2>
     <version.org.jfree.jfreechart>1.5.4</version.org.jfree.jfreechart>
-    <version.io.micrometer>1.16.6</version.io.micrometer>
     <version.org.openrewrite.recipe>1.19.3</version.org.openrewrite.recipe>
     <version.org.slf4j>2.0.17</version.org.slf4j><!-- TODO keep in sync with 
quarkus-bom -->
     <version.org.eclipse.parsson>1.1.8</version.org.eclipse.parsson>
@@ -143,7 +142,7 @@
         <scope>import</scope>
       </dependency>
       <!-- Normal dependencies versions-->
-      <!-- CVE-2026-56624: override sshd-common and sshd-core pinned at 2.12.1 
by quarkus-bom -->
+      <!-- CVE-2026-56624: override sshd-common and sshd-core pinned at 2.17.1 
by quarkus-bom -->
       <dependency>
         <groupId>org.apache.sshd</groupId>
         <artifactId>sshd-common</artifactId>
@@ -154,22 +153,6 @@
         <artifactId>sshd-core</artifactId>
         <version>${version.org.apache.sshd}</version>
       </dependency>
-      <!-- CVE fix: override micrometer version brought in by quarkus-bom 
3.27.4 (1.14.7) to 1.16.6 -->
-      <dependency>
-        <groupId>io.micrometer</groupId>
-        <artifactId>micrometer-core</artifactId>
-        <version>${version.io.micrometer}</version>
-      </dependency>
-      <dependency>
-        <groupId>io.micrometer</groupId>
-        <artifactId>micrometer-commons</artifactId>
-        <version>${version.io.micrometer}</version>
-      </dependency>
-      <dependency>
-        <groupId>io.micrometer</groupId>
-        <artifactId>micrometer-observation</artifactId>
-        <version>${version.io.micrometer}</version>
-      </dependency>
       <dependency>
         <groupId>ch.qos.logback</groupId>
         <artifactId>logback-core</artifactId>
@@ -262,6 +245,7 @@
           <groupId>io.quarkus</groupId>
           <artifactId>quarkus-maven-plugin</artifactId>
           <version>${version.io.quarkus}</version>
+          <extensions>true</extensions>
         </plugin>
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
diff --git 
a/optaplanner-quarkus-integration/optaplanner-quarkus/deployment/src/main/java/org/optaplanner/quarkus/deployment/GizmoMemberAccessorEntityEnhancer.java
 
b/optaplanner-quarkus-integration/optaplanner-quarkus/deployment/src/main/java/org/optaplanner/quarkus/deployment/GizmoMemberAccessorEntityEnhancer.java
index 37234d6c814..582594b6a41 100644
--- 
a/optaplanner-quarkus-integration/optaplanner-quarkus/deployment/src/main/java/org/optaplanner/quarkus/deployment/GizmoMemberAccessorEntityEnhancer.java
+++ 
b/optaplanner-quarkus-integration/optaplanner-quarkus/deployment/src/main/java/org/optaplanner/quarkus/deployment/GizmoMemberAccessorEntityEnhancer.java
@@ -96,6 +96,8 @@ final class GizmoMemberAccessorEntityEnhancer {
     // This keep track of what fields we made non-final
     private final Set<Field> visitedFinalFields = new HashSet<>();
     private final Set<MethodInfo> visitedMethods = new HashSet<>();
+    // A member with several solver annotations must yield ONE accessor class; 
duplicates fail the Quarkus jar consistency check
+    private final Set<String> generatedAccessorClassNames = new HashSet<>();
 
     private static String getVirtualGetterName(boolean isField, String name) {
         return "$get$optaplanner$__" + ((isField) ? "field$__" : "method$__") 
+ name;
@@ -120,11 +122,14 @@ final class GizmoMemberAccessorEntityEnhancer {
         Class<?> declaringClass = 
Class.forName(fieldInfo.declaringClass().name().toString(), false,
                 Thread.currentThread().getContextClassLoader());
         Field fieldMember = declaringClass.getDeclaredField(fieldInfo.name());
+        String generatedClassName = 
GizmoMemberAccessorFactory.getGeneratedClassName(fieldMember);
+        if (!generatedAccessorClassNames.add(generatedClassName)) {
+            return generatedClassName;
+        }
         GizmoMemberDescriptor member = 
createMemberDescriptorForField(fieldMember, transformers);
         GizmoMemberInfo memberInfo = new GizmoMemberInfo(member,
                 (Class<? extends Annotation>) 
Class.forName(annotationInstance.name().toString(), false,
                         Thread.currentThread().getContextClassLoader()));
-        String generatedClassName = 
GizmoMemberAccessorFactory.getGeneratedClassName(fieldMember);
         GizmoMemberAccessorImplementor.defineAccessorFor(generatedClassName, 
classOutput, memberInfo);
         return generatedClassName;
     }
@@ -186,6 +191,9 @@ final class GizmoMemberAccessorEntityEnhancer {
                 Thread.currentThread().getContextClassLoader());
         Method methodMember = 
declaringClass.getDeclaredMethod(methodInfo.name());
         String generatedClassName = 
GizmoMemberAccessorFactory.getGeneratedClassName(methodMember);
+        if (!generatedAccessorClassNames.add(generatedClassName)) {
+            return generatedClassName;
+        }
         GizmoMemberDescriptor member;
         String name = getMemberName(methodMember);
         Optional<MethodDescriptor> setterDescriptor = 
getSetterDescriptor(classInfo, methodInfo, name);
diff --git 
a/optaplanner-quarkus-integration/optaplanner-quarkus/deployment/src/main/java/org/optaplanner/quarkus/deployment/OptaPlannerProcessor.java
 
b/optaplanner-quarkus-integration/optaplanner-quarkus/deployment/src/main/java/org/optaplanner/quarkus/deployment/OptaPlannerProcessor.java
index eb597ebcbe6..8a63da02d29 100644
--- 
a/optaplanner-quarkus-integration/optaplanner-quarkus/deployment/src/main/java/org/optaplanner/quarkus/deployment/OptaPlannerProcessor.java
+++ 
b/optaplanner-quarkus-integration/optaplanner-quarkus/deployment/src/main/java/org/optaplanner/quarkus/deployment/OptaPlannerProcessor.java
@@ -24,6 +24,8 @@ import static 
io.quarkus.deployment.annotations.ExecutionTime.STATIC_INIT;
 
 import java.io.IOException;
 import java.io.StringWriter;
+import java.lang.constant.ClassDesc;
+import java.lang.constant.ConstantDescs;
 import java.lang.reflect.Modifier;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -100,8 +102,13 @@ import io.quarkus.devui.spi.JsonRPCProvidersBuildItem;
 import io.quarkus.devui.spi.page.CardPageBuildItem;
 import io.quarkus.devui.spi.page.Page;
 import io.quarkus.gizmo.ClassOutput;
-import io.quarkus.gizmo.MethodDescriptor;
-import io.quarkus.gizmo.ResultHandle;
+import io.quarkus.gizmo2.Const;
+import io.quarkus.gizmo2.Expr;
+import io.quarkus.gizmo2.LocalVar;
+import io.quarkus.gizmo2.creator.BlockCreator;
+import io.quarkus.gizmo2.desc.ConstructorDesc;
+import io.quarkus.gizmo2.desc.InterfaceMethodDesc;
+import io.quarkus.gizmo2.desc.MethodDesc;
 import io.quarkus.runtime.configuration.ConfigurationException;
 
 class OptaPlannerProcessor {
@@ -229,7 +236,6 @@ class OptaPlannerProcessor {
     @Record(RUNTIME_INIT)
     SolverConfigBuildItem recordAndRegisterBeans(OptaPlannerRecorder recorder, 
RecorderContext recorderContext,
             DetermineIfNativeBuildItem determineIfNative, 
CombinedIndexBuildItem combinedIndex,
-            OptaPlannerRuntimeConfig optaplannerRuntimeConfig,
             BuildProducer<ReflectiveHierarchyBuildItem> 
reflectiveHierarchyClass,
             BuildProducer<SyntheticBeanBuildItem> 
syntheticBeanBuildItemBuildProducer,
             BuildProducer<AdditionalBeanBuildItem> additionalBeans,
@@ -357,52 +363,47 @@ class OptaPlannerProcessor {
                     
solverConfig.getScoreDirectorFactoryConfig().isDroolsAlphaNetworkCompilationEnabled();
             
syntheticBeanBuildItemBuildProducer.produce(SyntheticBeanBuildItem.configure(DotNames.CONSTRAINT_VERIFIER)
                     .scope(Singleton.class)
-                    .creator(methodCreator -> {
-                        ResultHandle constraintProviderResultHandle =
-                                
methodCreator.newInstance(MethodDescriptor.ofConstructor(constraintProviderClass));
-                        ResultHandle planningSolutionClassResultHandle = 
methodCreator.loadClass(planningSolutionClass);
-
-                        ResultHandle planningEntityClassesResultHandle =
-                                methodCreator.newArray(Class.class, 
planningEntityClasses.size());
-                        for (int i = 0; i < planningEntityClasses.size(); i++) 
{
-                            ResultHandle planningEntityClassResultHandle =
-                                    
methodCreator.loadClass(planningEntityClasses.get(i));
-                            
methodCreator.writeArrayValue(planningEntityClassesResultHandle, i,
-                                    planningEntityClassResultHandle);
-                        }
+                    .creator(cg -> {
+                        BlockCreator bc = cg.createMethod();
+                        ClassDesc constraintVerifierDesc = 
ClassDesc.of(constraintVerifierClassName);
+                        Expr constraintProvider = 
bc.new_(ConstructorDesc.of(constraintProviderClass));
+
+                        Expr planningEntityClassesArray = 
bc.newArray(Class.class, planningEntityClasses, Const::of);
 
                         // Got incompatible class change error when trying to 
invoke static method on
                         // ConstraintVerifier.build(ConstraintProvider, Class, 
Class...)
-                        ResultHandle solutionDescriptorResultHandle = 
methodCreator.invokeStaticMethod(
-                                
MethodDescriptor.ofMethod(SolutionDescriptor.class, "buildSolutionDescriptor",
+                        Expr solutionDescriptor = bc.invokeStatic(
+                                MethodDesc.of(SolutionDescriptor.class, 
"buildSolutionDescriptor",
                                         SolutionDescriptor.class, Class.class, 
Class[].class),
-                                planningSolutionClassResultHandle, 
planningEntityClassesResultHandle);
-                        ResultHandle constraintVerifierResultHandle = 
methodCreator.newInstance(
-                                MethodDescriptor.ofConstructor(
-                                        
"org.optaplanner.test.impl.score.stream.DefaultConstraintVerifier",
+                                Const.of(planningSolutionClass), 
planningEntityClassesArray);
+                        LocalVar constraintVerifier = 
bc.localVar("constraintVerifier", bc.new_(
+                                ConstructorDesc.of(
+                                        
ClassDesc.of("org.optaplanner.test.impl.score.stream.DefaultConstraintVerifier"),
                                         ConstraintProvider.class, 
SolutionDescriptor.class),
-                                constraintProviderResultHandle, 
solutionDescriptorResultHandle);
+                                constraintProvider, solutionDescriptor));
 
                         if (constraintStreamImplType != null) { // Use the 
default if not specified.
-                            constraintVerifierResultHandle = 
methodCreator.invokeInterfaceMethod(
-                                    
MethodDescriptor.ofMethod(constraintVerifierClassName,
+                            bc.set(constraintVerifier, bc.invokeInterface(
+                                    
InterfaceMethodDesc.of(constraintVerifierDesc,
                                             "withConstraintStreamImplType",
-                                            constraintVerifierClassName,
-                                            ConstraintStreamImplType.class),
-                                    constraintVerifierResultHandle,
-                                    
methodCreator.load(constraintStreamImplType));
+                                            constraintVerifierDesc,
+                                            
ClassDesc.of(ConstraintStreamImplType.class.getName())),
+                                    constraintVerifier,
+                                    Const.of(Enum.EnumDesc.of(
+                                            
ClassDesc.of(ConstraintStreamImplType.class.getName()),
+                                            
constraintStreamImplType.name()))));
                         }
 
                         if (droolsAlphaNetworkCompilationEnabled != null) { // 
Use the default if not specified.
-                            constraintVerifierResultHandle = 
methodCreator.invokeInterfaceMethod(
-                                    
MethodDescriptor.ofMethod(constraintVerifierClassName,
+                            bc.set(constraintVerifier, bc.invokeInterface(
+                                    
InterfaceMethodDesc.of(constraintVerifierDesc,
                                             
"withDroolsAlphaNetworkCompilationEnabled",
-                                            constraintVerifierClassName,
-                                            boolean.class),
-                                    constraintVerifierResultHandle,
-                                    
methodCreator.load(droolsAlphaNetworkCompilationEnabled));
+                                            constraintVerifierDesc,
+                                            ConstantDescs.CD_boolean),
+                                    constraintVerifier,
+                                    
Const.of(droolsAlphaNetworkCompilationEnabled)));
                         }
-                        
methodCreator.returnValue(constraintVerifierResultHandle);
+                        bc.return_(constraintVerifier);
                     })
                     
.addType(ParameterizedType.create(DotNames.CONSTRAINT_VERIFIER,
                             new Type[] {
diff --git 
a/optaplanner-quarkus-integration/optaplanner-quarkus/deployment/src/test/java/org/optaplanner/quarkus/OptaPlannerProcessorOverridePropertiesAtRuntimeTest.java
 
b/optaplanner-quarkus-integration/optaplanner-quarkus/deployment/src/test/java/org/optaplanner/quarkus/OptaPlannerProcessorOverridePropertiesAtRuntimeTest.java
index 5f2686eaf19..ba1a90a37e2 100644
--- 
a/optaplanner-quarkus-integration/optaplanner-quarkus/deployment/src/test/java/org/optaplanner/quarkus/OptaPlannerProcessorOverridePropertiesAtRuntimeTest.java
+++ 
b/optaplanner-quarkus-integration/optaplanner-quarkus/deployment/src/test/java/org/optaplanner/quarkus/OptaPlannerProcessorOverridePropertiesAtRuntimeTest.java
@@ -43,7 +43,7 @@ import 
org.optaplanner.quarkus.testdata.normal.constraints.TestdataQuarkusConstr
 import org.optaplanner.quarkus.testdata.normal.domain.TestdataQuarkusEntity;
 import org.optaplanner.quarkus.testdata.normal.domain.TestdataQuarkusSolution;
 
-import io.quarkus.bootstrap.model.AppArtifact;
+import io.quarkus.maven.dependency.Dependency;
 import io.quarkus.test.QuarkusProdModeTest;
 import io.restassured.RestAssured;
 
@@ -61,7 +61,7 @@ class OptaPlannerProcessorOverridePropertiesAtRuntimeTest {
 
     @RegisterExtension
     static final QuarkusProdModeTest config = new QuarkusProdModeTest()
-            .setForcedDependencies(List.of(new AppArtifact("io.quarkus", 
"quarkus-resteasy", QUARKUS_VERSION)))
+            .setForcedDependencies(List.of(Dependency.of("io.quarkus", 
"quarkus-resteasy", QUARKUS_VERSION)))
             // We want to check if these are overridden at runtime
             
.overrideConfigKey("quarkus.optaplanner.solver.termination.best-score-limit", 
"0")
             .overrideConfigKey("quarkus.optaplanner.solver.move-thread-count", 
"4")


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

Reply via email to