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

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


The following commit(s) were added to refs/heads/main by this push:
     new 67099cda9c [incubator-kie-issues#1983] Adapt the configurations in our 
Quarkus extensions to use the new config mechanism (#4151)
67099cda9c is described below

commit 67099cda9c5e5bb3cfe7cd3f59be9b363fd685f7
Author: Pere Fernández <[email protected]>
AuthorDate: Thu Dec 18 16:14:00 2025 +0100

    [incubator-kie-issues#1983] Adapt the configurations in our Quarkus 
extensions to use the new config mechanism (#4151)
    
    * [incubator-kie-issues#1983] Adapt the configurations in our Quarkus 
extensions to use the new config mechanism
    
    * - cleanup
    
    * - naming suggestions
    
    * - add missing config keys
    
    * - fix naming
    
    * - Fix static init config validation
    
    * - Restore `TokenExpectation`
    
    * - fix devservices
---
 quarkus/addons/camel/deployment/pom.xml            |  3 -
 quarkus/addons/camel/runtime/pom.xml               |  3 -
 quarkus/addons/dynamic/deployment/pom.xml          |  3 -
 quarkus/addons/dynamic/runtime/pom.xml             |  3 -
 quarkus/addons/events/decisions/deployment/pom.xml |  3 -
 quarkus/addons/events/mongodb/deployment/pom.xml   |  3 -
 .../addons/events/predictions/deployment/pom.xml   |  3 -
 .../KogitoAddOnEventProcessProcessor.java          |  2 +-
 quarkus/addons/events/process/runtime/pom.xml      |  3 -
 .../kogito/events/config/EventsRuntimeConfig.java  | 64 ++++++++--------------
 .../process/AbstractMessagingEventPublisher.java   |  4 +-
 .../GroupingMessagingEventPublisherTest.java       |  3 +-
 quarkus/addons/explainability/runtime/pom.xml      |  3 -
 .../deployment/pom.xml                             |  3 -
 .../runtime/pom.xml                                |  3 -
 quarkus/addons/flyway/deployment/pom.xml           |  3 -
 quarkus/addons/flyway/runtime/pom.xml              |  3 -
 .../flyway/quarkus/KieFlywayQuarkusRecorder.java   |  6 +-
 .../quarkus/KieFlywayQuarkusRuntimeConfig.java     | 30 +++++-----
 .../KieQuarkusFlywayNamedModuleConfig.java}        | 19 +++----
 quarkus/addons/jobs/messaging/deployment/pom.xml   |  3 -
 quarkus/addons/knative/eventing/deployment/pom.xml |  3 -
 .../eventing/deployment/EventingConfiguration.java | 20 ++++---
 .../KogitoAddOnKnativeEventingProcessor.java       | 12 ++--
 .../eventing/deployment/SinkConfiguration.java     | 25 ++++-----
 .../KogitoAddOnKnativeEventingProcessorTest.java   | 29 +++++-----
 quarkus/addons/knative/eventing/runtime/pom.xml    |  3 -
 quarkus/addons/knative/serving/deployment/pom.xml  |  3 -
 quarkus/addons/knative/serving/runtime/pom.xml     |  3 -
 .../deployment/pom.xml                             |  3 -
 .../runtime/pom.xml                                |  3 -
 .../addons/persistence/infinispan/runtime/pom.xml  |  3 -
 .../addons/persistence/postgresql/runtime/pom.xml  |  3 -
 quarkus/addons/persistence/rocksdb/runtime/pom.xml |  3 -
 .../persistence/quarkus/rocksdb/RocksDbConfig.java |  9 +++
 quarkus/addons/process-management/runtime/pom.xml  |  3 -
 quarkus/addons/source-files/runtime/pom.xml        |  3 -
 quarkus/addons/tracing-decision/deployment/pom.xml |  3 -
 quarkus/addons/tracing-decision/runtime/pom.xml    |  3 -
 .../kogito-quarkus-decisions-deployment/pom.xml    |  3 -
 .../kogito-quarkus-decisions/pom.xml               |  3 -
 .../kogito-quarkus-common-deployment/pom.xml       |  3 -
 .../common/deployment/KogitoCommonProcessor.java   |  8 +++
 .../kogito-quarkus-common/pom.xml                  |  3 -
 .../QuarkusIdentityProviderFactoryProducer.java    |  4 +-
 .../org/kie/kogito/quarkus/config/ConfigBean.java  |  8 +--
 .../quarkus/config/KogitoAuthRuntimeConfig.java    | 13 +++--
 .../quarkus/config/KogitoBuildTimeConfig.java      | 39 ++++++++-----
 .../config/KogitoEventingRuntimeConfig.java        | 23 ++++----
 .../kogito/quarkus/config/KogitoRuntimeConfig.java | 26 +++++----
 ...onfig.java => KogitoSmallryeConfigBuilder.java} | 28 ++++------
 .../KogitoSmallryeConfigBuilderCustomizer.java     | 42 ++++++++++++++
 .../registry/ProcessDefinitionRegistration.java    |  2 +-
 ...smallrye.config.SmallRyeConfigBuilderCustomizer | 20 +++++++
 .../kogito-quarkus-deployment/pom.xml              |  3 -
 .../kogito-quarkus/pom.xml                         |  3 -
 .../kogito-quarkus-predictions-deployment/pom.xml  |  3 -
 .../kogito-quarkus-predictions/pom.xml             |  3 -
 .../kogito-quarkus-processes-deployment/pom.xml    |  3 -
 .../deployment/KogitoDevServicesProcessor.java     | 25 ++++++---
 .../kogito-quarkus-processes/pom.xml               |  3 -
 .../kogito-quarkus-rules-deployment/pom.xml        |  3 -
 .../kogito-quarkus-rules/pom.xml                   |  3 -
 .../pom.xml                                        |  3 -
 .../ServerlessWorkflowDevServicesProcessor.java    | 26 ++++++---
 .../src/main/resources/application.properties      |  4 --
 .../kogito-quarkus-serverless-workflow/pom.xml     |  3 -
 .../workflow/config/KogitoBuildTimeConfig.java     | 12 ++--
 .../workflow/config/KogitoRPCRuntimeConfig.java    | 15 +++--
 .../KogitoServerlessWorkflowBuildTimeConfig.java   | 15 +++--
 .../KogitoServerlessWorkflowRuntimeConfig.java     | 12 ++--
 .../pom.xml                                        |  3 -
 .../deployment/AbstractDevServicesProcessor.java   | 23 +++++---
 .../config/KogitoDevServicesBuildTimeConfig.java   | 23 ++++----
 .../config/KogitoWorkflowBuildTimeConfig.java      | 18 +++---
 .../config/KogitoPersistenceBuildTimeConfig.java   | 15 +++--
 .../config/KogitoPersistenceRuntimeConfig.java     | 23 ++++----
 .../config/KogitoWorkflowBuildTimeConfig.java      | 18 +++---
 .../config/KogitoWorkflowRuntimeConfig.java        | 12 ++--
 79 files changed, 394 insertions(+), 409 deletions(-)

diff --git a/quarkus/addons/camel/deployment/pom.xml 
b/quarkus/addons/camel/deployment/pom.xml
index 7555c881a4..84f09a17f3 100644
--- a/quarkus/addons/camel/deployment/pom.xml
+++ b/quarkus/addons/camel/deployment/pom.xml
@@ -86,9 +86,6 @@
               <version>${version.io.quarkus}</version>
             </path>
           </annotationProcessorPaths>
-          <compilerArgs>
-            <arg>-AlegacyConfigRoot=true</arg>
-          </compilerArgs>
         </configuration>
       </plugin>
     </plugins>
diff --git a/quarkus/addons/camel/runtime/pom.xml 
b/quarkus/addons/camel/runtime/pom.xml
index 53848a0561..a68826951b 100644
--- a/quarkus/addons/camel/runtime/pom.xml
+++ b/quarkus/addons/camel/runtime/pom.xml
@@ -90,9 +90,6 @@
               <version>${version.io.quarkus}</version>
             </path>
           </annotationProcessorPaths>
-          <compilerArgs>
-            <arg>-AlegacyConfigRoot=true</arg>
-          </compilerArgs>
         </configuration>
       </plugin>
     </plugins>
diff --git a/quarkus/addons/dynamic/deployment/pom.xml 
b/quarkus/addons/dynamic/deployment/pom.xml
index aebebbe291..7c4332e4de 100644
--- a/quarkus/addons/dynamic/deployment/pom.xml
+++ b/quarkus/addons/dynamic/deployment/pom.xml
@@ -70,9 +70,6 @@
              <version>${version.io.quarkus}</version>
             </path>
           </annotationProcessorPaths>
-          <compilerArgs>
-            <arg>-AlegacyConfigRoot=true</arg>
-          </compilerArgs>
         </configuration>
       </plugin>
     </plugins>
diff --git a/quarkus/addons/dynamic/runtime/pom.xml 
b/quarkus/addons/dynamic/runtime/pom.xml
index 560872c413..98c099d0d6 100644
--- a/quarkus/addons/dynamic/runtime/pom.xml
+++ b/quarkus/addons/dynamic/runtime/pom.xml
@@ -84,9 +84,6 @@
              <version>${version.io.quarkus}</version>
             </path>
           </annotationProcessorPaths>
-          <compilerArgs>
-            <arg>-AlegacyConfigRoot=true</arg>
-          </compilerArgs>
         </configuration>
       </plugin>
     </plugins>
diff --git a/quarkus/addons/events/decisions/deployment/pom.xml 
b/quarkus/addons/events/decisions/deployment/pom.xml
index 41929a0882..75bd89b6dd 100644
--- a/quarkus/addons/events/decisions/deployment/pom.xml
+++ b/quarkus/addons/events/decisions/deployment/pom.xml
@@ -100,9 +100,6 @@
               <version>${version.io.quarkus}</version>
             </path>
           </annotationProcessorPaths>
-          <compilerArgs>
-            <arg>-AlegacyConfigRoot=true</arg>
-          </compilerArgs>
         </configuration>
       </plugin>
     </plugins>
diff --git a/quarkus/addons/events/mongodb/deployment/pom.xml 
b/quarkus/addons/events/mongodb/deployment/pom.xml
index 54c4f1127d..3ab027deb0 100644
--- a/quarkus/addons/events/mongodb/deployment/pom.xml
+++ b/quarkus/addons/events/mongodb/deployment/pom.xml
@@ -75,9 +75,6 @@
               <version>${version.io.quarkus}</version>
             </path>
           </annotationProcessorPaths>
-          <compilerArgs>
-            <arg>-AlegacyConfigRoot=true</arg>
-          </compilerArgs>
         </configuration>
       </plugin>
     </plugins>
diff --git a/quarkus/addons/events/predictions/deployment/pom.xml 
b/quarkus/addons/events/predictions/deployment/pom.xml
index 1d147c0220..e00606eb33 100644
--- a/quarkus/addons/events/predictions/deployment/pom.xml
+++ b/quarkus/addons/events/predictions/deployment/pom.xml
@@ -100,9 +100,6 @@
               <version>${version.io.quarkus}</version>
             </path>
           </annotationProcessorPaths>
-          <compilerArgs>
-            <arg>-AlegacyConfigRoot=true</arg>
-          </compilerArgs>
         </configuration>
       </plugin>
     </plugins>
diff --git 
a/quarkus/addons/events/process/deployment/src/main/java/org/kie/kogito/events/process/deployment/KogitoAddOnEventProcessProcessor.java
 
b/quarkus/addons/events/process/deployment/src/main/java/org/kie/kogito/events/process/deployment/KogitoAddOnEventProcessProcessor.java
index 09974979e7..236f3629ef 100644
--- 
a/quarkus/addons/events/process/deployment/src/main/java/org/kie/kogito/events/process/deployment/KogitoAddOnEventProcessProcessor.java
+++ 
b/quarkus/addons/events/process/deployment/src/main/java/org/kie/kogito/events/process/deployment/KogitoAddOnEventProcessProcessor.java
@@ -45,7 +45,7 @@ class KogitoAddOnEventProcessProcessor extends 
OneOfCapabilityKogitoAddOnProcess
 
     @BuildStep
     void httpMessageDecorator(BuildProducer<AdditionalBeanBuildItem> 
beanBuildItem, KogitoBuildTimeConfig buildTimeConfig, 
KogitoBuildContextBuildItem kogitoContext) {
-        if (buildTimeConfig.useCloudEvents && 
kogitoContext.getKogitoBuildContext().hasClassAvailable("io.quarkus.reactivemessaging.http.runtime.OutgoingHttpMetadata"))
 {
+        if (buildTimeConfig.useCloudEvents() && 
kogitoContext.getKogitoBuildContext().hasClassAvailable("io.quarkus.reactivemessaging.http.runtime.OutgoingHttpMetadata"))
 {
             
beanBuildItem.produce(AdditionalBeanBuildItem.builder().addBeanClass(CloudEventHttpOutgoingDecorator.class).setDefaultScope(DotNames.APPLICATION_SCOPED).build());
         }
     }
diff --git a/quarkus/addons/events/process/runtime/pom.xml 
b/quarkus/addons/events/process/runtime/pom.xml
index b852f1149f..50ef92684c 100644
--- a/quarkus/addons/events/process/runtime/pom.xml
+++ b/quarkus/addons/events/process/runtime/pom.xml
@@ -134,9 +134,6 @@
               <version>${version.io.quarkus}</version>
             </path>
           </annotationProcessorPaths>
-          <compilerArgs>
-            <arg>-AlegacyConfigRoot=true</arg>
-          </compilerArgs>
         </configuration>
       </plugin>
     </plugins>
diff --git 
a/quarkus/addons/events/process/runtime/src/main/java/org/kie/kogito/events/config/EventsRuntimeConfig.java
 
b/quarkus/addons/events/process/runtime/src/main/java/org/kie/kogito/events/config/EventsRuntimeConfig.java
index d89e3c9132..93bbaa6abd 100644
--- 
a/quarkus/addons/events/process/runtime/src/main/java/org/kie/kogito/events/config/EventsRuntimeConfig.java
+++ 
b/quarkus/addons/events/process/runtime/src/main/java/org/kie/kogito/events/config/EventsRuntimeConfig.java
@@ -18,71 +18,55 @@
  */
 package org.kie.kogito.events.config;
 
-import io.quarkus.runtime.annotations.ConfigItem;
 import io.quarkus.runtime.annotations.ConfigPhase;
 import io.quarkus.runtime.annotations.ConfigRoot;
+import io.smallrye.config.ConfigMapping;
+import io.smallrye.config.WithDefault;
+import io.smallrye.config.WithName;
 
-@ConfigRoot(prefix = "kogito", name = "events", phase = ConfigPhase.RUN_TIME)
-public class EventsRuntimeConfig {
+@ConfigRoot(phase = ConfigPhase.RUN_TIME)
+@ConfigMapping(prefix = "kogito.events")
+public interface EventsRuntimeConfig {
 
     /**
      * Enable publishing processes instances events
      */
-    @ConfigItem(name = "processinstances.enabled", defaultValue = "true")
-    boolean processInstancesEventsEnabled;
+    @WithName("processinstances.enabled")
+    @WithDefault("true")
+    boolean isProcessInstancesEventsEnabled();
 
     /**
      * Propagate errors for process instance emitter
      */
-    @ConfigItem(name = "processinstances.errors.propagate", defaultValue = 
"false")
-    boolean processInstancesPropagate;
+    @WithName("processinstances.errors.propagate")
+    @WithDefault("false")
+    boolean isProcessInstancesPropagateError();
 
     /**
      * Enable publishing processes definition events
      */
-    @ConfigItem(name = "processdefinitions.enabled", defaultValue = "true")
-    boolean processDefinitionEventsEnabled;
+    @WithName("processdefinitions.enabled")
+    @WithDefault("true")
+    boolean isProcessDefinitionEventsEnabled();
 
     /**
      * Propagate errors for process definition emitter
      */
-    @ConfigItem(name = "processdefinitions.errors.propagate", defaultValue = 
"false")
-    boolean processDefinitionPropagate;
+    @WithName("processdefinitions.errors.propagate")
+    @WithDefault("false")
+    boolean isProcessDefinitionsPropagateErrors();
 
     /**
      * Enable publishing user task instances events
      */
-    @ConfigItem(name = "usertasks.enabled", defaultValue = "true")
-    boolean userTasksEventsEnabled;
+    @WithName("usertasks.enabled")
+    @WithDefault("true")
+    boolean isUserTasksEventsEnabled();
 
     /**
      * Propagate errors for user task emitter
      */
-    @ConfigItem(name = "usertasks.errors.propagate", defaultValue = "false")
-    boolean userTasksPropagate;
-
-    public boolean isProcessInstancesEventsEnabled() {
-        return processInstancesEventsEnabled;
-    }
-
-    public boolean isProcessDefinitionEventsEnabled() {
-        return processDefinitionEventsEnabled;
-    }
-
-    public boolean isUserTasksEventsEnabled() {
-        return userTasksEventsEnabled;
-    }
-
-    public boolean isProcessInstancesPropagateError() {
-        return processInstancesPropagate;
-    }
-
-    public boolean isProcessDefinitionPropagateError() {
-        return processDefinitionPropagate;
-    }
-
-    public boolean isUserTasksPropagateError() {
-        return userTasksPropagate;
-    }
-
+    @WithName("usertasks.errors.propagate")
+    @WithDefault("false")
+    boolean isUserTasksPropagateError();
 }
diff --git 
a/quarkus/addons/events/process/runtime/src/main/java/org/kie/kogito/events/process/AbstractMessagingEventPublisher.java
 
b/quarkus/addons/events/process/runtime/src/main/java/org/kie/kogito/events/process/AbstractMessagingEventPublisher.java
index f8092c8357..88515230f1 100644
--- 
a/quarkus/addons/events/process/runtime/src/main/java/org/kie/kogito/events/process/AbstractMessagingEventPublisher.java
+++ 
b/quarkus/addons/events/process/runtime/src/main/java/org/kie/kogito/events/process/AbstractMessagingEventPublisher.java
@@ -77,9 +77,9 @@ public abstract class AbstractMessagingEventPublisher 
implements EventPublisher
     @PostConstruct
     public void init() {
         decoratorProvider = decoratorProviderInstance.isResolvable() ? 
decoratorProviderInstance.get() : null;
-        processDefinitionConsumer = 
eventsRuntimeConfig.isProcessInstancesPropagateError() ? new 
BlockingMessageEmitter(processDefinitionEventsEmitter, 
PROCESS_DEFINITIONS_TOPIC_NAME)
+        processDefinitionConsumer = 
eventsRuntimeConfig.isProcessDefinitionsPropagateErrors() ? new 
BlockingMessageEmitter(processDefinitionEventsEmitter, 
PROCESS_DEFINITIONS_TOPIC_NAME)
                 : new ReactiveMessageEmitter(processDefinitionEventsEmitter, 
PROCESS_DEFINITIONS_TOPIC_NAME);
-        processInstanceConsumer = 
eventsRuntimeConfig.isProcessDefinitionPropagateError() ? new 
BlockingMessageEmitter(processInstancesEventsEmitter, 
PROCESS_INSTANCES_TOPIC_NAME)
+        processInstanceConsumer = 
eventsRuntimeConfig.isProcessInstancesPropagateError() ? new 
BlockingMessageEmitter(processInstancesEventsEmitter, 
PROCESS_INSTANCES_TOPIC_NAME)
                 : new ReactiveMessageEmitter(processInstancesEventsEmitter, 
PROCESS_INSTANCES_TOPIC_NAME);
         userTaskConsumer = eventsRuntimeConfig.isUserTasksPropagateError() ? 
new BlockingMessageEmitter(userTasksEventsEmitter, 
USER_TASK_INSTANCES_TOPIC_NAME)
                 : new ReactiveMessageEmitter(userTasksEventsEmitter, 
USER_TASK_INSTANCES_TOPIC_NAME);
diff --git 
a/quarkus/addons/events/process/runtime/src/test/java/org/kie/kogito/events/process/GroupingMessagingEventPublisherTest.java
 
b/quarkus/addons/events/process/runtime/src/test/java/org/kie/kogito/events/process/GroupingMessagingEventPublisherTest.java
index 0d784d3a53..88f6ece9d5 100644
--- 
a/quarkus/addons/events/process/runtime/src/test/java/org/kie/kogito/events/process/GroupingMessagingEventPublisherTest.java
+++ 
b/quarkus/addons/events/process/runtime/src/test/java/org/kie/kogito/events/process/GroupingMessagingEventPublisherTest.java
@@ -32,7 +32,6 @@ import org.kie.kogito.event.process.ProcessInstanceDataEvent;
 import org.kie.kogito.event.usertask.MultipleUserTaskInstanceDataEvent;
 import org.kie.kogito.event.usertask.UserTaskInstanceDataEvent;
 import org.kie.kogito.events.config.EventsRuntimeConfig;
-import 
org.kie.kogito.events.process.AbstractMessagingEventPublisher.AbstractMessageEmitter;
 import org.mockito.ArgumentCaptor;
 import org.mockito.InjectMocks;
 import org.mockito.Mock;
@@ -105,7 +104,7 @@ public class GroupingMessagingEventPublisherTest {
         when(decoratorProviderInstance.get()).thenReturn(decoratorProvider);
 
         
when(eventsRuntimeConfig.isProcessInstancesPropagateError()).thenReturn(false);
-        
when(eventsRuntimeConfig.isProcessDefinitionPropagateError()).thenReturn(false);
+        
when(eventsRuntimeConfig.isProcessDefinitionsPropagateErrors()).thenReturn(false);
         
when(eventsRuntimeConfig.isUserTasksPropagateError()).thenReturn(false);
 
         
when(eventsRuntimeConfig.isProcessInstancesEventsEnabled()).thenReturn(true);
diff --git a/quarkus/addons/explainability/runtime/pom.xml 
b/quarkus/addons/explainability/runtime/pom.xml
index f4d2cc1b61..5a36104b6b 100644
--- a/quarkus/addons/explainability/runtime/pom.xml
+++ b/quarkus/addons/explainability/runtime/pom.xml
@@ -116,9 +116,6 @@
                             <version>${version.io.quarkus}</version>
                         </path>
                     </annotationProcessorPaths>
-                    <compilerArgs>
-                        <arg>-AlegacyConfigRoot=true</arg>
-                    </compilerArgs>
                 </configuration>
             </plugin>
             <plugin>
diff --git 
a/quarkus/addons/fabric8-kubernetes-service-catalog/deployment/pom.xml 
b/quarkus/addons/fabric8-kubernetes-service-catalog/deployment/pom.xml
index 7f847f9cde..4535fa8c29 100644
--- a/quarkus/addons/fabric8-kubernetes-service-catalog/deployment/pom.xml
+++ b/quarkus/addons/fabric8-kubernetes-service-catalog/deployment/pom.xml
@@ -63,9 +63,6 @@
                             <version>${version.io.quarkus}</version>
                         </path>
                     </annotationProcessorPaths>
-                    <compilerArgs>
-                        <arg>-AlegacyConfigRoot=true</arg>
-                    </compilerArgs>
                 </configuration>
             </plugin>
         </plugins>
diff --git a/quarkus/addons/fabric8-kubernetes-service-catalog/runtime/pom.xml 
b/quarkus/addons/fabric8-kubernetes-service-catalog/runtime/pom.xml
index aa10f07ed8..e2f9796aac 100644
--- a/quarkus/addons/fabric8-kubernetes-service-catalog/runtime/pom.xml
+++ b/quarkus/addons/fabric8-kubernetes-service-catalog/runtime/pom.xml
@@ -132,9 +132,6 @@
                             <version>${version.io.quarkus}</version>
                         </path>
                     </annotationProcessorPaths>
-                    <compilerArgs>
-                        <arg>-AlegacyConfigRoot=true</arg>
-                    </compilerArgs>
                 </configuration>
             </plugin>
         </plugins>
diff --git a/quarkus/addons/flyway/deployment/pom.xml 
b/quarkus/addons/flyway/deployment/pom.xml
index 78ecd5f5c9..92de0848b9 100644
--- a/quarkus/addons/flyway/deployment/pom.xml
+++ b/quarkus/addons/flyway/deployment/pom.xml
@@ -79,9 +79,6 @@
                             <version>${version.io.quarkus}</version>
                         </path>
                     </annotationProcessorPaths>
-                    <compilerArgs>
-                        <arg>-AlegacyConfigRoot=true</arg>
-                    </compilerArgs>
                 </configuration>
             </plugin>
         </plugins>
diff --git a/quarkus/addons/flyway/runtime/pom.xml 
b/quarkus/addons/flyway/runtime/pom.xml
index 0c26efeb76..ceac5d7301 100644
--- a/quarkus/addons/flyway/runtime/pom.xml
+++ b/quarkus/addons/flyway/runtime/pom.xml
@@ -90,9 +90,6 @@
                             <version>${version.io.quarkus}</version>
                         </path>
                     </annotationProcessorPaths>
-                    <compilerArgs>
-                        <arg>-AlegacyConfigRoot=true</arg>
-                    </compilerArgs>
                 </configuration>
             </plugin>
         </plugins>
diff --git 
a/quarkus/addons/flyway/runtime/src/main/java/org/kie/flyway/quarkus/KieFlywayQuarkusRecorder.java
 
b/quarkus/addons/flyway/runtime/src/main/java/org/kie/flyway/quarkus/KieFlywayQuarkusRecorder.java
index f5dbb0dce8..60814d9f40 100644
--- 
a/quarkus/addons/flyway/runtime/src/main/java/org/kie/flyway/quarkus/KieFlywayQuarkusRecorder.java
+++ 
b/quarkus/addons/flyway/runtime/src/main/java/org/kie/flyway/quarkus/KieFlywayQuarkusRecorder.java
@@ -48,12 +48,12 @@ public class KieFlywayQuarkusRecorder {
 
         KieFlywayQuarkusRuntimeConfig runtimeConfig = config.getValue();
 
-        Collection<KieFlywayNamedModule> kieFlywayNamedModules = 
runtimeConfig.modules.entrySet()
+        Collection<KieFlywayNamedModule> kieFlywayNamedModules = 
runtimeConfig.modules().entrySet()
                 .stream()
-                .map(entry -> new KieFlywayNamedModule(entry.getKey(), 
entry.getValue().enabled))
+                .map(entry -> new KieFlywayNamedModule(entry.getKey(), 
entry.getValue().enabled()))
                 .toList();
 
-        KieFlywayRunnerConfiguration kieFlywayConfig = new 
KieFlywayRunnerConfiguration(runtimeConfig.enabled, kieFlywayNamedModules);
+        KieFlywayRunnerConfiguration kieFlywayConfig = new 
KieFlywayRunnerConfiguration(runtimeConfig.enabled(), kieFlywayNamedModules);
         KieFlywayRunner.get(kieFlywayConfig)
                 .runFlyway(dataSource);
     }
diff --git 
a/quarkus/addons/flyway/runtime/src/main/java/org/kie/flyway/quarkus/KieFlywayQuarkusRuntimeConfig.java
 
b/quarkus/addons/flyway/runtime/src/main/java/org/kie/flyway/quarkus/KieFlywayQuarkusRuntimeConfig.java
index ae6e2ad70b..3f17dc7783 100644
--- 
a/quarkus/addons/flyway/runtime/src/main/java/org/kie/flyway/quarkus/KieFlywayQuarkusRuntimeConfig.java
+++ 
b/quarkus/addons/flyway/runtime/src/main/java/org/kie/flyway/quarkus/KieFlywayQuarkusRuntimeConfig.java
@@ -22,32 +22,28 @@ package org.kie.flyway.quarkus;
 import java.util.Map;
 
 import io.quarkus.runtime.annotations.*;
+import io.smallrye.config.ConfigMapping;
+import io.smallrye.config.WithDefault;
+import io.smallrye.config.WithParentName;
 
 /**
  * Configuration for the Kie Flyway initializer
  */
-@ConfigRoot(prefix = "kie", name = "flyway", phase = ConfigPhase.RUN_TIME)
-public class KieFlywayQuarkusRuntimeConfig {
+@ConfigRoot(phase = ConfigPhase.RUN_TIME)
+@ConfigMapping(prefix = "kie.flyway")
+public interface KieFlywayQuarkusRuntimeConfig {
 
     /**
      * Enables the execution of the Flyway initializer during the application 
startup
      */
-    @ConfigItem(name = "enabled", defaultValue = "false")
-    boolean enabled;
+    @WithDefault("false")
+    boolean enabled();
 
     /**
-     * List of {@link KieQuarkusFlywayNamedModule} that allow to enable or 
disable a given modul
+     * List of {@link KieQuarkusFlywayNamedModuleConfig} that allow to enable 
or disable a given modul
      */
-    @ConfigItem(name = "modules")
-    Map<String, KieQuarkusFlywayNamedModule> modules;
-
-    @ConfigGroup
-    public static class KieQuarkusFlywayNamedModule {
-
-        /**
-         * Enables the execution of the Flyway initializer for a specific Kie 
module
-         */
-        @ConfigItem(name = "enabled", defaultValue = "true")
-        boolean enabled;
-    }
+
+    @WithParentName
+    Map<String, KieQuarkusFlywayNamedModuleConfig> modules();
+
 }
diff --git 
a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow/src/main/java/org/kie/kogito/quarkus/serverless/workflow/config/KogitoServerlessWorkflowRuntimeConfig.java
 
b/quarkus/addons/flyway/runtime/src/main/java/org/kie/flyway/quarkus/KieQuarkusFlywayNamedModuleConfig.java
similarity index 66%
copy from 
quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow/src/main/java/org/kie/kogito/quarkus/serverless/workflow/config/KogitoServerlessWorkflowRuntimeConfig.java
copy to 
quarkus/addons/flyway/runtime/src/main/java/org/kie/flyway/quarkus/KieQuarkusFlywayNamedModuleConfig.java
index 544d8e363a..81e6bd3e4c 100644
--- 
a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow/src/main/java/org/kie/kogito/quarkus/serverless/workflow/config/KogitoServerlessWorkflowRuntimeConfig.java
+++ 
b/quarkus/addons/flyway/runtime/src/main/java/org/kie/flyway/quarkus/KieQuarkusFlywayNamedModuleConfig.java
@@ -16,19 +16,18 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.kie.kogito.quarkus.serverless.workflow.config;
 
-import io.quarkus.runtime.annotations.ConfigItem;
-import io.quarkus.runtime.annotations.ConfigPhase;
-import io.quarkus.runtime.annotations.ConfigRoot;
+package org.kie.flyway.quarkus;
 
-@ConfigRoot(name = "", phase = ConfigPhase.RUN_TIME, prefix = "kogito")
-public class KogitoServerlessWorkflowRuntimeConfig {
+import io.quarkus.runtime.annotations.ConfigGroup;
+import io.smallrye.config.WithDefault;
+
+@ConfigGroup
+public interface KieQuarkusFlywayNamedModuleConfig {
 
     /**
-     * grpc runtime configuration
+     * Enables the execution of the Flyway initializer for a specific Kie 
module
      */
-    @ConfigItem
-    public KogitoRPCRuntimeConfig grpc;
-
+    @WithDefault("true")
+    boolean enabled();
 }
diff --git a/quarkus/addons/jobs/messaging/deployment/pom.xml 
b/quarkus/addons/jobs/messaging/deployment/pom.xml
index 5e1dff8429..1bfce0cd17 100644
--- a/quarkus/addons/jobs/messaging/deployment/pom.xml
+++ b/quarkus/addons/jobs/messaging/deployment/pom.xml
@@ -83,9 +83,6 @@
               <version>${version.io.quarkus}</version>
             </path>
           </annotationProcessorPaths>
-          <compilerArgs>
-            <arg>-AlegacyConfigRoot=true</arg>
-          </compilerArgs>
         </configuration>
       </plugin>
     </plugins>
diff --git a/quarkus/addons/knative/eventing/deployment/pom.xml 
b/quarkus/addons/knative/eventing/deployment/pom.xml
index 52f4718aea..e315ad143d 100644
--- a/quarkus/addons/knative/eventing/deployment/pom.xml
+++ b/quarkus/addons/knative/eventing/deployment/pom.xml
@@ -106,9 +106,6 @@
               <version>${version.io.quarkus}</version>
             </path>
           </annotationProcessorPaths>
-          <compilerArgs>
-            <arg>-AlegacyConfigRoot=true</arg>
-          </compilerArgs>
         </configuration>
       </plugin>
     </plugins>
diff --git 
a/quarkus/addons/knative/eventing/deployment/src/main/java/org/kie/kogito/addons/quarkus/knative/eventing/deployment/EventingConfiguration.java
 
b/quarkus/addons/knative/eventing/deployment/src/main/java/org/kie/kogito/addons/quarkus/knative/eventing/deployment/EventingConfiguration.java
index 267ac8624b..22102a9150 100644
--- 
a/quarkus/addons/knative/eventing/deployment/src/main/java/org/kie/kogito/addons/quarkus/knative/eventing/deployment/EventingConfiguration.java
+++ 
b/quarkus/addons/knative/eventing/deployment/src/main/java/org/kie/kogito/addons/quarkus/knative/eventing/deployment/EventingConfiguration.java
@@ -18,12 +18,15 @@
  */
 package org.kie.kogito.addons.quarkus.knative.eventing.deployment;
 
-import io.quarkus.runtime.annotations.ConfigItem;
 import io.quarkus.runtime.annotations.ConfigPhase;
 import io.quarkus.runtime.annotations.ConfigRoot;
+import io.smallrye.config.ConfigMapping;
+import io.smallrye.config.WithDefault;
+import io.smallrye.config.WithName;
 
-@ConfigRoot(prefix = "org.kie.kogito.addons.knative", name = "eventing", phase 
= ConfigPhase.BUILD_TIME)
-public class EventingConfiguration {
+@ConfigRoot(phase = ConfigPhase.BUILD_TIME)
+@ConfigMapping(prefix = "org.kie.kogito.addons.knative.eventing")
+public interface EventingConfiguration {
 
     /**
      * Name of the default Knative Broker deployed in the target Knative 
namespace.
@@ -31,8 +34,8 @@ public class EventingConfiguration {
      * This broker is used as the reference to create the Knative Triggers 
responsible
      * to delegate the events that this Kogito service will consume.
      */
-    @ConfigItem(defaultValue = "default")
-    String broker;
+    @WithDefault("default")
+    String broker();
 
     /**
      * Whether the extension should generate a default Knative Broker in 
memory to sink and dispatch the messages.
@@ -41,8 +44,9 @@ public class EventingConfiguration {
      * Note that you can use `org.kie.kogito.addons.knative.eventing.sink.*` 
to configure your custom Sink.
      * If not defined, this auto generated Broker will work as the Sink.
      */
-    @ConfigItem(defaultValue = "true")
-    Boolean autoGenerateBroker;
+    @WithDefault("true")
+    Boolean autoGenerateBroker();
 
-    SinkConfiguration sink;
+    @WithName("sink")
+    SinkConfiguration sinkConfig();
 }
diff --git 
a/quarkus/addons/knative/eventing/deployment/src/main/java/org/kie/kogito/addons/quarkus/knative/eventing/deployment/KogitoAddOnKnativeEventingProcessor.java
 
b/quarkus/addons/knative/eventing/deployment/src/main/java/org/kie/kogito/addons/quarkus/knative/eventing/deployment/KogitoAddOnKnativeEventingProcessor.java
index fad77d231d..05292bd223 100644
--- 
a/quarkus/addons/knative/eventing/deployment/src/main/java/org/kie/kogito/addons/quarkus/knative/eventing/deployment/KogitoAddOnKnativeEventingProcessor.java
+++ 
b/quarkus/addons/knative/eventing/deployment/src/main/java/org/kie/kogito/addons/quarkus/knative/eventing/deployment/KogitoAddOnKnativeEventingProcessor.java
@@ -127,7 +127,7 @@ public class KogitoAddOnKnativeEventingProcessor extends 
AnyEngineKogitoAddOnPro
     }
 
     private Optional<Broker> generateBroker() {
-        if (config.autoGenerateBroker) {
+        if (config.autoGenerateBroker()) {
             LOGGER.warn("Generating in memory Knative Broke. Note that this 
Broker is not meant for production usage!");
             return Optional.of(new BrokerBuilder().withNewMetadata()
                     .withName(SinkConfiguration.DEFAULT_SINK_NAME)
@@ -147,10 +147,10 @@ public class KogitoAddOnKnativeEventingProcessor extends 
AnyEngineKogitoAddOnPro
                     .withApiVersion(metadata.getDeployment().getApiVersion())
                     .endSubject()
                     .withNewSink().withNewRef()
-                    .withName(config.sink.name) // from properties
-                    .withApiVersion(config.sink.apiVersion)
-                    .withKind(config.sink.kind)
-                    .withNamespace(config.sink.namespace.orElse(""))
+                    .withName(config.sinkConfig().name()) // from properties
+                    .withApiVersion(config.sinkConfig().apiVersion())
+                    .withKind(config.sinkConfig().kind())
+                    .withNamespace(config.sinkConfig().namespace().orElse(""))
                     .endRef().endSink().endSpec()
                     .build());
         }
@@ -168,7 +168,7 @@ public class KogitoAddOnKnativeEventingProcessor extends 
AnyEngineKogitoAddOnPro
                         .withNewFilter()
                         .addToAttributes(Collections.singletonMap("type", 
ce.getType()))
                         .endFilter()
-                        .withBroker(config.broker)
+                        .withBroker(config.broker())
                         .withNewSubscriber()
                         .withNewRef()
                         .withKind(metadata.getDeployment().getKind())
diff --git 
a/quarkus/addons/knative/eventing/deployment/src/main/java/org/kie/kogito/addons/quarkus/knative/eventing/deployment/SinkConfiguration.java
 
b/quarkus/addons/knative/eventing/deployment/src/main/java/org/kie/kogito/addons/quarkus/knative/eventing/deployment/SinkConfiguration.java
index 9389bdec1e..b1151b21ce 100644
--- 
a/quarkus/addons/knative/eventing/deployment/src/main/java/org/kie/kogito/addons/quarkus/knative/eventing/deployment/SinkConfiguration.java
+++ 
b/quarkus/addons/knative/eventing/deployment/src/main/java/org/kie/kogito/addons/quarkus/knative/eventing/deployment/SinkConfiguration.java
@@ -21,43 +21,42 @@ package 
org.kie.kogito.addons.quarkus.knative.eventing.deployment;
 import java.util.Optional;
 
 import io.quarkus.runtime.annotations.ConfigGroup;
-import io.quarkus.runtime.annotations.ConfigItem;
+import io.smallrye.config.WithDefault;
 
 @ConfigGroup
-public class SinkConfiguration {
+public interface SinkConfiguration {
 
-    public static final String DEFAULT_SINK_API_VERSION = 
"eventing.knative.dev/v1";
-    public static final String DEFAULT_SINK_NAME = "default";
-    public static final String DEFAULT_SINK_KIND = "Broker";
+    String DEFAULT_SINK_API_VERSION = "eventing.knative.dev/v1";
+    String DEFAULT_SINK_NAME = "default";
+    String DEFAULT_SINK_KIND = "Broker";
 
     /**
      * Namespace where the given Knative Sink is deployed.
      * This sink is used to configure the "sink" property in the generated 
Knative SinkBinding for this Kogito service.
      */
-    @ConfigItem
-    Optional<String> namespace;
+    Optional<String> namespace();
 
     /**
      * Kubernetes API Version of the given Knative Sink.
      * <p>
      * This sink is used to configure the "sink" property in the generated 
Knative SinkBinding for this Kogito service.
      */
-    @ConfigItem(defaultValue = DEFAULT_SINK_API_VERSION)
-    String apiVersion;
+    @WithDefault(DEFAULT_SINK_API_VERSION)
+    String apiVersion();
 
     /**
      * Name of the given Knative Sink.
      * <p>
      * This sink is used to configure the "sink" property in the generated 
Knative SinkBinding for this Kogito service.
      */
-    @ConfigItem(defaultValue = DEFAULT_SINK_NAME)
-    String name;
+    @WithDefault(DEFAULT_SINK_NAME)
+    String name();
 
     /**
      * Kubernetes Kind of the given Knative Sink.
      * <p>
      * This sink is used to configure the "sink" property in the generated 
Knative SinkBinding for this Kogito service.
      */
-    @ConfigItem(defaultValue = DEFAULT_SINK_KIND)
-    String kind;
+    @WithDefault(DEFAULT_SINK_KIND)
+    String kind();
 }
diff --git 
a/quarkus/addons/knative/eventing/deployment/src/test/java/org/kie/kogito/addons/quarkus/knative/eventing/deployment/KogitoAddOnKnativeEventingProcessorTest.java
 
b/quarkus/addons/knative/eventing/deployment/src/test/java/org/kie/kogito/addons/quarkus/knative/eventing/deployment/KogitoAddOnKnativeEventingProcessorTest.java
index d3d9735fde..d53ab19e8f 100644
--- 
a/quarkus/addons/knative/eventing/deployment/src/test/java/org/kie/kogito/addons/quarkus/knative/eventing/deployment/KogitoAddOnKnativeEventingProcessorTest.java
+++ 
b/quarkus/addons/knative/eventing/deployment/src/test/java/org/kie/kogito/addons/quarkus/knative/eventing/deployment/KogitoAddOnKnativeEventingProcessorTest.java
@@ -44,11 +44,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
 import static org.junit.jupiter.api.Assertions.assertNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 import static 
org.kie.kogito.addons.quarkus.knative.eventing.KnativeEventingConfigSourceFactory.INCLUDE_PROCESS_EVENTS;
-import static org.mockito.Mockito.any;
-import static org.mockito.Mockito.doReturn;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.never;
-import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.*;
 
 class KogitoAddOnKnativeEventingProcessorTest {
 
@@ -181,16 +177,19 @@ class KogitoAddOnKnativeEventingProcessorTest {
 
     private KogitoAddOnKnativeEventingProcessor 
buildTestProcessorWithDefaultConfig() {
         final KogitoAddOnKnativeEventingProcessor eventingProcessor = new 
KogitoAddOnKnativeEventingProcessor();
-        final SinkConfiguration sinkConfiguration = new SinkConfiguration();
-        sinkConfiguration.apiVersion = 
SinkConfiguration.DEFAULT_SINK_API_VERSION;
-        sinkConfiguration.kind = SinkConfiguration.DEFAULT_SINK_KIND;
-        sinkConfiguration.name = SinkConfiguration.DEFAULT_SINK_NAME;
-        sinkConfiguration.namespace = Optional.empty();
-
-        eventingProcessor.config = new EventingConfiguration();
-        eventingProcessor.config.autoGenerateBroker = true;
-        eventingProcessor.config.broker = "default";
-        eventingProcessor.config.sink = sinkConfiguration;
+        final SinkConfiguration sinkConfiguration = 
mock(SinkConfiguration.class);
+
+        
when(sinkConfiguration.apiVersion()).thenReturn(SinkConfiguration.DEFAULT_SINK_API_VERSION);
+        
when(sinkConfiguration.kind()).thenReturn(SinkConfiguration.DEFAULT_SINK_KIND);
+        
when(sinkConfiguration.name()).thenReturn(SinkConfiguration.DEFAULT_SINK_NAME);
+        when(sinkConfiguration.namespace()).thenReturn(Optional.empty());
+
+        EventingConfiguration eventingConfiguration = 
mock(EventingConfiguration.class);
+        when(eventingConfiguration.sinkConfig()).thenReturn(sinkConfiguration);
+        when(eventingConfiguration.autoGenerateBroker()).thenReturn(true);
+        when(eventingConfiguration.broker()).thenReturn("default");
+
+        eventingProcessor.config = eventingConfiguration;
 
         return eventingProcessor;
     }
diff --git a/quarkus/addons/knative/eventing/runtime/pom.xml 
b/quarkus/addons/knative/eventing/runtime/pom.xml
index 1e8233ccd6..92bc7ce718 100644
--- a/quarkus/addons/knative/eventing/runtime/pom.xml
+++ b/quarkus/addons/knative/eventing/runtime/pom.xml
@@ -110,9 +110,6 @@
               <version>${version.io.quarkus}</version>
             </path>
           </annotationProcessorPaths>
-          <compilerArgs>
-            <arg>-AlegacyConfigRoot=true</arg>
-          </compilerArgs>
         </configuration>
       </plugin>
     </plugins>
diff --git a/quarkus/addons/knative/serving/deployment/pom.xml 
b/quarkus/addons/knative/serving/deployment/pom.xml
index 206dd0bf6c..70b4e7f8c0 100644
--- a/quarkus/addons/knative/serving/deployment/pom.xml
+++ b/quarkus/addons/knative/serving/deployment/pom.xml
@@ -88,9 +88,6 @@
                             <version>${version.io.quarkus}</version>
                         </path>
                     </annotationProcessorPaths>
-                    <compilerArgs>
-                        <arg>-AlegacyConfigRoot=true</arg>
-                    </compilerArgs>
                 </configuration>
             </plugin>
         </plugins>
diff --git a/quarkus/addons/knative/serving/runtime/pom.xml 
b/quarkus/addons/knative/serving/runtime/pom.xml
index dbd62870bd..65e1c8d495 100644
--- a/quarkus/addons/knative/serving/runtime/pom.xml
+++ b/quarkus/addons/knative/serving/runtime/pom.xml
@@ -137,9 +137,6 @@
                             <version>${version.io.quarkus}</version>
                         </path>
                     </annotationProcessorPaths>
-                    <compilerArgs>
-                        <arg>-AlegacyConfigRoot=true</arg>
-                    </compilerArgs>
                 </configuration>
             </plugin>
         </plugins>
diff --git 
a/quarkus/addons/microprofile-config-service-catalog/deployment/pom.xml 
b/quarkus/addons/microprofile-config-service-catalog/deployment/pom.xml
index e45895e462..8223eba7f3 100644
--- a/quarkus/addons/microprofile-config-service-catalog/deployment/pom.xml
+++ b/quarkus/addons/microprofile-config-service-catalog/deployment/pom.xml
@@ -63,9 +63,6 @@
                             <version>${version.io.quarkus}</version>
                         </path>
                     </annotationProcessorPaths>
-                    <compilerArgs>
-                        <arg>-AlegacyConfigRoot=true</arg>
-                    </compilerArgs>
                 </configuration>
             </plugin>
         </plugins>
diff --git a/quarkus/addons/microprofile-config-service-catalog/runtime/pom.xml 
b/quarkus/addons/microprofile-config-service-catalog/runtime/pom.xml
index a5a3dc1591..089aa2507f 100644
--- a/quarkus/addons/microprofile-config-service-catalog/runtime/pom.xml
+++ b/quarkus/addons/microprofile-config-service-catalog/runtime/pom.xml
@@ -100,9 +100,6 @@
                             <version>${version.io.quarkus}</version>
                         </path>
                     </annotationProcessorPaths>
-                    <compilerArgs>
-                        <arg>-AlegacyConfigRoot=true</arg>
-                    </compilerArgs>
                 </configuration>
             </plugin>
         </plugins>
diff --git a/quarkus/addons/persistence/infinispan/runtime/pom.xml 
b/quarkus/addons/persistence/infinispan/runtime/pom.xml
index b91aa45677..4fc149b625 100644
--- a/quarkus/addons/persistence/infinispan/runtime/pom.xml
+++ b/quarkus/addons/persistence/infinispan/runtime/pom.xml
@@ -93,9 +93,6 @@
               <version>${version.io.quarkus}</version>
             </path>
           </annotationProcessorPaths>
-          <compilerArgs>
-            <arg>-AlegacyConfigRoot=true</arg>
-          </compilerArgs>
         </configuration>
       </plugin>
     </plugins>
diff --git a/quarkus/addons/persistence/postgresql/runtime/pom.xml 
b/quarkus/addons/persistence/postgresql/runtime/pom.xml
index 2e89894d97..a2f11150fb 100644
--- a/quarkus/addons/persistence/postgresql/runtime/pom.xml
+++ b/quarkus/addons/persistence/postgresql/runtime/pom.xml
@@ -107,9 +107,6 @@
               <version>${version.io.quarkus}</version>
             </path>
           </annotationProcessorPaths>
-          <compilerArgs>
-            <arg>-AlegacyConfigRoot=true</arg>
-          </compilerArgs>
         </configuration>
       </plugin>
     </plugins>
diff --git a/quarkus/addons/persistence/rocksdb/runtime/pom.xml 
b/quarkus/addons/persistence/rocksdb/runtime/pom.xml
index 4c15802769..1056cf7965 100644
--- a/quarkus/addons/persistence/rocksdb/runtime/pom.xml
+++ b/quarkus/addons/persistence/rocksdb/runtime/pom.xml
@@ -92,9 +92,6 @@
               <version>${version.io.quarkus}</version>
             </path>
           </annotationProcessorPaths>
-          <compilerArgs>
-            <arg>-AlegacyConfigRoot=true</arg>
-          </compilerArgs>
         </configuration>
       </plugin>
     </plugins>
diff --git 
a/quarkus/addons/persistence/rocksdb/runtime/src/main/java/org/kie/kogito/persistence/quarkus/rocksdb/RocksDbConfig.java
 
b/quarkus/addons/persistence/rocksdb/runtime/src/main/java/org/kie/kogito/persistence/quarkus/rocksdb/RocksDbConfig.java
index bb34589623..08ef6f776e 100644
--- 
a/quarkus/addons/persistence/rocksdb/runtime/src/main/java/org/kie/kogito/persistence/quarkus/rocksdb/RocksDbConfig.java
+++ 
b/quarkus/addons/persistence/rocksdb/runtime/src/main/java/org/kie/kogito/persistence/quarkus/rocksdb/RocksDbConfig.java
@@ -18,19 +18,28 @@
  */
 package org.kie.kogito.persistence.quarkus.rocksdb;
 
+import io.quarkus.runtime.annotations.ConfigPhase;
+import io.quarkus.runtime.annotations.ConfigRoot;
 import io.quarkus.runtime.annotations.StaticInitSafe;
 import io.smallrye.config.ConfigMapping;
 import io.smallrye.config.WithDefault;
 import io.smallrye.config.WithName;
 
+@ConfigRoot(phase = ConfigPhase.RUN_TIME)
 @ConfigMapping(prefix = "kogito.persistence.rocksdb")
 @StaticInitSafe
 public interface RocksDbConfig {
 
+    /**
+     * Sets DB data dir
+     */
     @WithName("data.dir")
     @WithDefault("rockdstemp")
     String dataDir();
 
+    /**
+     * Clean DB data when shutting down application
+     */
     @WithName("clean")
     @WithDefault("false")
     boolean destroyDB();
diff --git a/quarkus/addons/process-management/runtime/pom.xml 
b/quarkus/addons/process-management/runtime/pom.xml
index dea3c6b06c..48161a444b 100644
--- a/quarkus/addons/process-management/runtime/pom.xml
+++ b/quarkus/addons/process-management/runtime/pom.xml
@@ -123,9 +123,6 @@
               <version>${version.io.quarkus}</version>
             </path>
           </annotationProcessorPaths>
-          <compilerArgs>
-            <arg>-AlegacyConfigRoot=true</arg>
-          </compilerArgs>
         </configuration>
       </plugin>
     </plugins>
diff --git a/quarkus/addons/source-files/runtime/pom.xml 
b/quarkus/addons/source-files/runtime/pom.xml
index 24d5c00732..839ad0ee31 100644
--- a/quarkus/addons/source-files/runtime/pom.xml
+++ b/quarkus/addons/source-files/runtime/pom.xml
@@ -150,9 +150,6 @@
                             <version>${version.io.quarkus}</version>
                         </path>
                     </annotationProcessorPaths>
-                    <compilerArgs>
-                        <arg>-AlegacyConfigRoot=true</arg>
-                    </compilerArgs>
                 </configuration>
             </plugin>
         </plugins>
diff --git a/quarkus/addons/tracing-decision/deployment/pom.xml 
b/quarkus/addons/tracing-decision/deployment/pom.xml
index 85513b3b1f..2008d25cb5 100644
--- a/quarkus/addons/tracing-decision/deployment/pom.xml
+++ b/quarkus/addons/tracing-decision/deployment/pom.xml
@@ -97,9 +97,6 @@
               <version>${version.io.quarkus}</version>
             </path>
           </annotationProcessorPaths>
-          <compilerArgs>
-            <arg>-AlegacyConfigRoot=true</arg>
-          </compilerArgs>
         </configuration>
       </plugin>
     </plugins>
diff --git a/quarkus/addons/tracing-decision/runtime/pom.xml 
b/quarkus/addons/tracing-decision/runtime/pom.xml
index a61c8a6546..0e26a01b73 100644
--- a/quarkus/addons/tracing-decision/runtime/pom.xml
+++ b/quarkus/addons/tracing-decision/runtime/pom.xml
@@ -146,9 +146,6 @@
               <version>${version.io.quarkus}</version>
             </path>
           </annotationProcessorPaths>
-          <compilerArgs>
-            <arg>-AlegacyConfigRoot=true</arg>
-          </compilerArgs>
         </configuration>
       </plugin>
       <plugin>
diff --git 
a/quarkus/extensions/kogito-quarkus-decisions-extension/kogito-quarkus-decisions-deployment/pom.xml
 
b/quarkus/extensions/kogito-quarkus-decisions-extension/kogito-quarkus-decisions-deployment/pom.xml
index 1641e6acca..bc91f46e92 100644
--- 
a/quarkus/extensions/kogito-quarkus-decisions-extension/kogito-quarkus-decisions-deployment/pom.xml
+++ 
b/quarkus/extensions/kogito-quarkus-decisions-extension/kogito-quarkus-decisions-deployment/pom.xml
@@ -66,9 +66,6 @@
                             <version>${version.io.quarkus}</version>
                         </path>
                     </annotationProcessorPaths>
-                    <compilerArgs>
-                        <arg>-AlegacyConfigRoot=true</arg>
-                    </compilerArgs>
                 </configuration>
             </plugin>
         </plugins>
diff --git 
a/quarkus/extensions/kogito-quarkus-decisions-extension/kogito-quarkus-decisions/pom.xml
 
b/quarkus/extensions/kogito-quarkus-decisions-extension/kogito-quarkus-decisions/pom.xml
index 75bde690f0..14bdfbb77c 100644
--- 
a/quarkus/extensions/kogito-quarkus-decisions-extension/kogito-quarkus-decisions/pom.xml
+++ 
b/quarkus/extensions/kogito-quarkus-decisions-extension/kogito-quarkus-decisions/pom.xml
@@ -123,9 +123,6 @@
                             <version>${version.io.quarkus}</version>
                         </path>
                     </annotationProcessorPaths>
-                    <compilerArgs>
-                        <arg>-AlegacyConfigRoot=true</arg>
-                    </compilerArgs>
                 </configuration>
             </plugin>
             <plugin>
diff --git 
a/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common-deployment/pom.xml
 
b/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common-deployment/pom.xml
index 05f984341f..ba9c2a0903 100644
--- 
a/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common-deployment/pom.xml
+++ 
b/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common-deployment/pom.xml
@@ -157,9 +157,6 @@
               <version>${version.io.quarkus}</version>
             </path>
           </annotationProcessorPaths>
-          <compilerArgs>
-            <arg>-AlegacyConfigRoot=true</arg>
-          </compilerArgs>
         </configuration>
       </plugin>
     </plugins>
diff --git 
a/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common-deployment/src/main/java/org/kie/kogito/quarkus/common/deployment/KogitoCommonProcessor.java
 
b/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common-deployment/src/main/java/org/kie/kogito/quarkus/common/deployment/KogitoCommonProcessor.java
index 7f9a2ff464..dc06afa54b 100644
--- 
a/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common-deployment/src/main/java/org/kie/kogito/quarkus/common/deployment/KogitoCommonProcessor.java
+++ 
b/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common-deployment/src/main/java/org/kie/kogito/quarkus/common/deployment/KogitoCommonProcessor.java
@@ -20,10 +20,13 @@ package org.kie.kogito.quarkus.common.deployment;
 
 import org.kie.internal.services.KieRuntimesImpl;
 import org.kie.internal.services.KieWeaversImpl;
+import org.kie.kogito.quarkus.config.KogitoSmallryeConfigBuilder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import io.quarkus.deployment.annotations.BuildProducer;
 import io.quarkus.deployment.annotations.BuildStep;
+import io.quarkus.deployment.builditem.StaticInitConfigBuilderBuildItem;
 import 
io.quarkus.deployment.builditem.nativeimage.NativeImageResourceBuildItem;
 import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
 
@@ -66,4 +69,9 @@ public class KogitoCommonProcessor {
         logger.debug("kieWeaversImplReflectiveClass()");
         return new ReflectiveClassBuildItem(true, true, KieWeaversImpl.class);
     }
+
+    @BuildStep
+    public void kogitoConfig(BuildProducer<StaticInitConfigBuilderBuildItem> 
staticInitConfigBuilder) {
+        staticInitConfigBuilder.produce(new 
StaticInitConfigBuilderBuildItem(KogitoSmallryeConfigBuilder.class));
+    }
 }
diff --git 
a/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/pom.xml
 
b/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/pom.xml
index 157f57a7ea..9de10bb129 100644
--- 
a/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/pom.xml
+++ 
b/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/pom.xml
@@ -117,9 +117,6 @@
                             <version>${version.io.quarkus}</version>
                         </path>
                     </annotationProcessorPaths>
-                    <compilerArgs>
-                        <arg>-AlegacyConfigRoot=true</arg>
-                    </compilerArgs>
                 </configuration>
             </plugin>
             <plugin>
diff --git 
a/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/src/main/java/org/kie/kogito/quarkus/auth/QuarkusIdentityProviderFactoryProducer.java
 
b/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/src/main/java/org/kie/kogito/quarkus/auth/QuarkusIdentityProviderFactoryProducer.java
index ea33b3b6b8..fab3b04a50 100644
--- 
a/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/src/main/java/org/kie/kogito/quarkus/auth/QuarkusIdentityProviderFactoryProducer.java
+++ 
b/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/src/main/java/org/kie/kogito/quarkus/auth/QuarkusIdentityProviderFactoryProducer.java
@@ -49,8 +49,8 @@ public class QuarkusIdentityProviderFactoryProducer {
 
     @Produces
     public IdentityProviderFactory get() {
-        String[] rolesThatAllowImpersonation = 
config.authConfig.rolesThatAllowImpersonation.map(value -> 
value.split(",")).orElse(new String[] {});
+        String[] rolesThatAllowImpersonation = 
config.authConfig().rolesThatAllowImpersonation().map(value -> 
value.split(",")).orElse(new String[] {});
 
-        return new IdentityProviderFactoryImpl(identityProvider, new 
KogitoAuthConfig(config.authConfig.enabled, 
List.of(rolesThatAllowImpersonation)));
+        return new IdentityProviderFactoryImpl(identityProvider, new 
KogitoAuthConfig(config.authConfig().enabled(), 
List.of(rolesThatAllowImpersonation)));
     }
 }
diff --git 
a/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/src/main/java/org/kie/kogito/quarkus/config/ConfigBean.java
 
b/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/src/main/java/org/kie/kogito/quarkus/config/ConfigBean.java
index 8a3d3ac660..34441d9123 100644
--- 
a/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/src/main/java/org/kie/kogito/quarkus/config/ConfigBean.java
+++ 
b/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/src/main/java/org/kie/kogito/quarkus/config/ConfigBean.java
@@ -44,12 +44,12 @@ public class ConfigBean extends StaticConfigBean {
 
     @Override
     public String getServiceUrl() {
-        return runtimeConfig.get().serviceUrl.orElse("");
+        return runtimeConfig.get().serviceUrl().orElse("");
     }
 
     @Override
     public short processInstanceLimit() {
-        return runtimeConfig.get().processInstanceLimit;
+        return runtimeConfig.get().processInstanceLimit();
     }
 
     @Override
@@ -59,11 +59,11 @@ public class ConfigBean extends StaticConfigBean {
 
     @Override
     public boolean failOnEmptyBean() {
-        return buildTimeConfig.get().failOnEmptyBean;
+        return buildTimeConfig.get().failOnEmptyBean();
     }
 
     @Override
     public boolean useCloudEvents() {
-        return buildTimeConfig.get().useCloudEvents;
+        return buildTimeConfig.get().useCloudEvents();
     }
 }
diff --git 
a/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/src/main/java/org/kie/kogito/quarkus/config/KogitoAuthRuntimeConfig.java
 
b/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/src/main/java/org/kie/kogito/quarkus/config/KogitoAuthRuntimeConfig.java
index 917439b188..e667f7aff9 100644
--- 
a/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/src/main/java/org/kie/kogito/quarkus/config/KogitoAuthRuntimeConfig.java
+++ 
b/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/src/main/java/org/kie/kogito/quarkus/config/KogitoAuthRuntimeConfig.java
@@ -22,20 +22,21 @@ package org.kie.kogito.quarkus.config;
 import java.util.Optional;
 
 import io.quarkus.runtime.annotations.ConfigGroup;
-import io.quarkus.runtime.annotations.ConfigItem;
+import io.smallrye.config.WithDefault;
+import io.smallrye.config.WithName;
 
 @ConfigGroup
-public class KogitoAuthRuntimeConfig {
+public interface KogitoAuthRuntimeConfig {
 
     /**
      * Enables using the application security context when resolving current 
User Identity.
      */
-    @ConfigItem(name = "enabled", defaultValue = "false")
-    public boolean enabled;
+    @WithDefault("false")
+    boolean enabled();
 
     /**
      * Comma-separated list of roles that allow identity impersonation when 
resolving the actual User Identity.
      */
-    @ConfigItem(name = "impersonation.allowed-for-roles")
-    public Optional<String> rolesThatAllowImpersonation;
+    @WithName("impersonation.allowed-for-roles")
+    Optional<String> rolesThatAllowImpersonation();
 }
diff --git 
a/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/src/main/java/org/kie/kogito/quarkus/config/KogitoBuildTimeConfig.java
 
b/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/src/main/java/org/kie/kogito/quarkus/config/KogitoBuildTimeConfig.java
index 06248a700f..9de1a4781f 100644
--- 
a/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/src/main/java/org/kie/kogito/quarkus/config/KogitoBuildTimeConfig.java
+++ 
b/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/src/main/java/org/kie/kogito/quarkus/config/KogitoBuildTimeConfig.java
@@ -18,54 +18,63 @@
  */
 package org.kie.kogito.quarkus.config;
 
-import io.quarkus.runtime.annotations.ConfigItem;
 import io.quarkus.runtime.annotations.ConfigPhase;
 import io.quarkus.runtime.annotations.ConfigRoot;
+import io.smallrye.config.ConfigMapping;
+import io.smallrye.config.WithDefault;
+import io.smallrye.config.WithName;
 
-@ConfigRoot(name = "", phase = ConfigPhase.BUILD_AND_RUN_TIME_FIXED, prefix = 
"kogito")
-public class KogitoBuildTimeConfig {
+@ConfigRoot(phase = ConfigPhase.BUILD_AND_RUN_TIME_FIXED)
+@ConfigMapping(prefix = "kogito")
+public interface KogitoBuildTimeConfig {
 
     /**
      * If this is enabled the service will use Cloud Events
      * <p>
      * If not defined, true will be used.
      */
-    @ConfigItem(name = "messaging.as-cloudevents", defaultValue = "true")
-    public Boolean useCloudEvents;
+    @WithName("messaging.as-cloudevents")
+    @WithDefault("true")
+    Boolean useCloudEvents();
 
     /**
      * If this property is True, Jackson will fail on an empty bean
      * <p>
      * If not defined, false will be used.
      */
-    @ConfigItem(name = "jackson.fail-on-empty-bean", defaultValue = "false")
-    public Boolean failOnEmptyBean;
+    @WithName("jackson.fail-on-empty-bean")
+    @WithDefault("false")
+    Boolean failOnEmptyBean();
 
     /**
      * Incoming channel default name
      */
-    @ConfigItem(name = "addon.messaging.incoming.defaultName", defaultValue = 
"kogito_incoming_stream")
-    public String incomingChannelDefaultName;
+    @WithName("addon.messaging.incoming.defaultName")
+    @WithDefault("kogito_incoming_stream")
+    String incomingChannelDefaultName();
 
     /**
      * Outgoing channel default name
      */
-    @ConfigItem(name = "addon.messaging.outgoing.defaultName", defaultValue = 
"kogito_outgoing_stream")
-    public String outgoingChannelDefaultName;
+    @WithName("addon.messaging.outgoing.defaultName")
+    @WithDefault("kogito_outgoing_stream")
+    String outgoingChannelDefaultName();
 
     /**
      * Whether to ignore hidden files when collecting files for code generation
      * <p>
      * If not defined, true will be used.
      */
-    @ConfigItem(name = "codegen.ignoreHiddenFiles", defaultValue = "true")
-    public Boolean ignoreHiddenFiles;
+    @WithName("codegen.ignoreHiddenFiles")
+    @WithDefault("true")
+    Boolean ignoreHiddenFiles();
 
     /**
      * Whether to fail when there are parsing/validation errors of process 
assets
      * <p>
      * If not defined, true will be used.
      */
-    @ConfigItem(name = "codegen.process.failOnError", defaultValue = "true")
-    public Boolean failOnError;
+    @WithName("codegen.process.failOnError")
+    @WithDefault("true")
+    Boolean failOnError();
 }
diff --git 
a/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/src/main/java/org/kie/kogito/quarkus/config/KogitoEventingRuntimeConfig.java
 
b/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/src/main/java/org/kie/kogito/quarkus/config/KogitoEventingRuntimeConfig.java
index cbe1f9ed5a..b6402115ea 100644
--- 
a/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/src/main/java/org/kie/kogito/quarkus/config/KogitoEventingRuntimeConfig.java
+++ 
b/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/src/main/java/org/kie/kogito/quarkus/config/KogitoEventingRuntimeConfig.java
@@ -19,25 +19,28 @@
 package org.kie.kogito.quarkus.config;
 
 import io.quarkus.runtime.annotations.ConfigGroup;
-import io.quarkus.runtime.annotations.ConfigItem;
+import io.smallrye.config.WithDefault;
+import io.smallrye.config.WithName;
 
 @ConfigGroup
-public class KogitoEventingRuntimeConfig {
+public interface KogitoEventingRuntimeConfig {
 
-    private static final String MAX_THREADS_PROPERTY = "threads.poolSize";
-    private static final String DEFAULT_MAX_THREADS = "10";
-    private static final String DEFAULT_QUEUE_SIZE = "1";
-    private static final String QUEUE_SIZE_PROPERTY = "threads.queueSize";
+    String MAX_THREADS_PROPERTY = "threads.poolSize";
+    String DEFAULT_MAX_THREADS = "10";
+    String DEFAULT_QUEUE_SIZE = "1";
+    String QUEUE_SIZE_PROPERTY = "threads.queueSize";
 
     /**
      * Maximum number of threads to handle incoming events by channel
      */
-    @ConfigItem(name = MAX_THREADS_PROPERTY, defaultValue = 
DEFAULT_MAX_THREADS)
-    public int maxThreads;
+    @WithName(MAX_THREADS_PROPERTY)
+    @WithDefault(DEFAULT_MAX_THREADS)
+    int maxThreads();
 
     /**
      * Maximum size of queue to hold incoming events to be processed by 
threads in the pool
      */
-    @ConfigItem(name = QUEUE_SIZE_PROPERTY, defaultValue = DEFAULT_QUEUE_SIZE)
-    public int queueSize;
+    @WithName(QUEUE_SIZE_PROPERTY)
+    @WithDefault(DEFAULT_QUEUE_SIZE)
+    int queueSize();
 }
diff --git 
a/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/src/main/java/org/kie/kogito/quarkus/config/KogitoRuntimeConfig.java
 
b/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/src/main/java/org/kie/kogito/quarkus/config/KogitoRuntimeConfig.java
index 451eae92a0..e0c889a8ee 100644
--- 
a/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/src/main/java/org/kie/kogito/quarkus/config/KogitoRuntimeConfig.java
+++ 
b/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/src/main/java/org/kie/kogito/quarkus/config/KogitoRuntimeConfig.java
@@ -20,35 +20,39 @@ package org.kie.kogito.quarkus.config;
 
 import java.util.Optional;
 
-import io.quarkus.runtime.annotations.ConfigItem;
 import io.quarkus.runtime.annotations.ConfigPhase;
 import io.quarkus.runtime.annotations.ConfigRoot;
+import io.smallrye.config.ConfigMapping;
+import io.smallrye.config.WithDefault;
+import io.smallrye.config.WithName;
 
-@ConfigRoot(name = "", phase = ConfigPhase.RUN_TIME, prefix = "kogito")
-public class KogitoRuntimeConfig {
+@ConfigRoot(phase = ConfigPhase.RUN_TIME)
+@ConfigMapping(prefix = "kogito")
+public interface KogitoRuntimeConfig {
 
     /**
      * The service URL needed to connect to the runtime endpoint from outside 
the service.
      * <p>
      */
-    @ConfigItem(name = "service.url")
-    public Optional<String> serviceUrl;
+    @WithName("service.url")
+    Optional<String> serviceUrl();
 
     /**
      * Eventing runtime configuration
      */
-    @ConfigItem(name = "quarkus.events")
-    public KogitoEventingRuntimeConfig eventingConfig;
+    @WithName("quarkus.events")
+    KogitoEventingRuntimeConfig eventingConfig();
 
     /**
      * Maximum number of process instance to be returned by GET api
      */
-    @ConfigItem(name = "process.instances.limit", defaultValue = "1000")
-    public short processInstanceLimit;
+    @WithName("process.instances.limit")
+    @WithDefault("1000")
+    short processInstanceLimit();
 
     /**
      * Auth Configuration
      */
-    @ConfigItem(name = "security.auth")
-    public KogitoAuthRuntimeConfig authConfig;
+    @WithName("security.auth")
+    KogitoAuthRuntimeConfig authConfig();
 }
diff --git 
a/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/src/main/java/org/kie/kogito/quarkus/config/KogitoAuthRuntimeConfig.java
 
b/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/src/main/java/org/kie/kogito/quarkus/config/KogitoSmallryeConfigBuilder.java
similarity index 57%
copy from 
quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/src/main/java/org/kie/kogito/quarkus/config/KogitoAuthRuntimeConfig.java
copy to 
quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/src/main/java/org/kie/kogito/quarkus/config/KogitoSmallryeConfigBuilder.java
index 917439b188..09e30b13b1 100644
--- 
a/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/src/main/java/org/kie/kogito/quarkus/config/KogitoAuthRuntimeConfig.java
+++ 
b/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/src/main/java/org/kie/kogito/quarkus/config/KogitoSmallryeConfigBuilder.java
@@ -16,26 +16,20 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-
 package org.kie.kogito.quarkus.config;
 
-import java.util.Optional;
-
-import io.quarkus.runtime.annotations.ConfigGroup;
-import io.quarkus.runtime.annotations.ConfigItem;
+import io.quarkus.runtime.configuration.ConfigBuilder;
+import io.smallrye.config.SmallRyeConfigBuilder;
 
-@ConfigGroup
-public class KogitoAuthRuntimeConfig {
+import static 
org.kie.kogito.quarkus.config.KogitoSmallryeConfigBuilderCustomizer.configureSmallRyeConfigBuilder;
 
-    /**
-     * Enables using the application security context when resolving current 
User Identity.
-     */
-    @ConfigItem(name = "enabled", defaultValue = "false")
-    public boolean enabled;
+/**
+ * {@link ConfigBuilder} to ensure that Smallrye config validation passes when 
there are kogito-related properties not mapped to a config root.
+ */
+public class KogitoSmallryeConfigBuilder implements ConfigBuilder {
 
-    /**
-     * Comma-separated list of roles that allow identity impersonation when 
resolving the actual User Identity.
-     */
-    @ConfigItem(name = "impersonation.allowed-for-roles")
-    public Optional<String> rolesThatAllowImpersonation;
+    @Override
+    public SmallRyeConfigBuilder configBuilder(SmallRyeConfigBuilder builder) {
+        return configureSmallRyeConfigBuilder(builder);
+    }
 }
diff --git 
a/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/src/main/java/org/kie/kogito/quarkus/config/KogitoSmallryeConfigBuilderCustomizer.java
 
b/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/src/main/java/org/kie/kogito/quarkus/config/KogitoSmallryeConfigBuilderCustomizer.java
new file mode 100644
index 0000000000..f2242dbc9d
--- /dev/null
+++ 
b/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/src/main/java/org/kie/kogito/quarkus/config/KogitoSmallryeConfigBuilderCustomizer.java
@@ -0,0 +1,42 @@
+/*
+ * 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.quarkus.config;
+
+import io.smallrye.config.SmallRyeConfigBuilder;
+import io.smallrye.config.SmallRyeConfigBuilderCustomizer;
+
+/**
+ * {@link SmallRyeConfigBuilderCustomizer} to ensure that Smallrye config 
validation passes when there are kogito-related properties not mapped to a 
config root.
+ */
+public class KogitoSmallryeConfigBuilderCustomizer implements 
SmallRyeConfigBuilderCustomizer {
+
+    @Override
+    public void configBuilder(SmallRyeConfigBuilder builder) {
+        // Align with quarkus to avoid the validation issue when we have 
runtime and build-time configs in the same
+        // namespace. 
https://github.com/quarkusio/quarkus/blob/265a4328f8195d9c2ef4fbf32f41eb23253479b7/core/runtime/src/main/java/io/quarkus/runtime/configuration/QuarkusConfigBuilderCustomizer.java#L113
+        configureSmallRyeConfigBuilder(builder);
+    }
+
+    static SmallRyeConfigBuilder 
configureSmallRyeConfigBuilder(SmallRyeConfigBuilder builder) {
+        return builder.withMappingIgnore("kogito.**")
+                .withMappingIgnore("kie.**")
+                .withMappingIgnore("jbpm.**")
+                .withMappingIgnore("org.kie.**");
+    }
+}
diff --git 
a/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/src/main/java/org/kie/kogito/quarkus/registry/ProcessDefinitionRegistration.java
 
b/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/src/main/java/org/kie/kogito/quarkus/registry/ProcessDefinitionRegistration.java
index 56ce82e0ed..6b7770867f 100644
--- 
a/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/src/main/java/org/kie/kogito/quarkus/registry/ProcessDefinitionRegistration.java
+++ 
b/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/src/main/java/org/kie/kogito/quarkus/registry/ProcessDefinitionRegistration.java
@@ -44,7 +44,7 @@ public class ProcessDefinitionRegistration {
     public ProcessDefinitionRegistration(Instance<Application> application, 
KogitoRuntimeConfig runtimeConfig, Instance<Processes> processes, 
Instance<SourceFilesProvider> sourceFilesProvider) {
         this.processes = processes;
         this.processDefinitionRegistry =
-                new ProcessDefinitionEventRegistry(application.isResolvable() 
? application.get() : (new StaticApplication()), 
runtimeConfig.serviceUrl.orElse(null),
+                new ProcessDefinitionEventRegistry(application.isResolvable() 
? application.get() : (new StaticApplication()), 
runtimeConfig.serviceUrl().orElse(null),
                         sourceFilesProvider.isResolvable() ? 
Optional.of(sourceFilesProvider.get()) : Optional.empty());
     }
 
diff --git 
a/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/src/main/resources/META-INF/services/io.smallrye.config.SmallRyeConfigBuilderCustomizer
 
b/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/src/main/resources/META-INF/services/io.smallrye.config.SmallRyeConfigBuilderCustomizer
new file mode 100644
index 0000000000..c9c4841237
--- /dev/null
+++ 
b/quarkus/extensions/kogito-quarkus-extension-common/kogito-quarkus-common/src/main/resources/META-INF/services/io.smallrye.config.SmallRyeConfigBuilderCustomizer
@@ -0,0 +1,20 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+org.kie.kogito.quarkus.config.KogitoSmallryeConfigBuilderCustomizer
\ No newline at end of file
diff --git 
a/quarkus/extensions/kogito-quarkus-extension/kogito-quarkus-deployment/pom.xml 
b/quarkus/extensions/kogito-quarkus-extension/kogito-quarkus-deployment/pom.xml
index fdb9a76aa5..8d524df2b2 100644
--- 
a/quarkus/extensions/kogito-quarkus-extension/kogito-quarkus-deployment/pom.xml
+++ 
b/quarkus/extensions/kogito-quarkus-extension/kogito-quarkus-deployment/pom.xml
@@ -95,9 +95,6 @@
               <version>${version.io.quarkus}</version>
             </path>
           </annotationProcessorPaths>
-          <compilerArgs>
-            <arg>-AlegacyConfigRoot=true</arg>
-          </compilerArgs>
         </configuration>
       </plugin>
     </plugins>
diff --git a/quarkus/extensions/kogito-quarkus-extension/kogito-quarkus/pom.xml 
b/quarkus/extensions/kogito-quarkus-extension/kogito-quarkus/pom.xml
index 7b8669038f..60e22aff45 100644
--- a/quarkus/extensions/kogito-quarkus-extension/kogito-quarkus/pom.xml
+++ b/quarkus/extensions/kogito-quarkus-extension/kogito-quarkus/pom.xml
@@ -99,9 +99,6 @@
               <version>${version.io.quarkus}</version>
             </path>
           </annotationProcessorPaths>
-          <compilerArgs>
-            <arg>-AlegacyConfigRoot=true</arg>
-          </compilerArgs>
         </configuration>
       </plugin>
     </plugins>
diff --git 
a/quarkus/extensions/kogito-quarkus-predictions-extension/kogito-quarkus-predictions-deployment/pom.xml
 
b/quarkus/extensions/kogito-quarkus-predictions-extension/kogito-quarkus-predictions-deployment/pom.xml
index ac0e449905..0008e0846f 100644
--- 
a/quarkus/extensions/kogito-quarkus-predictions-extension/kogito-quarkus-predictions-deployment/pom.xml
+++ 
b/quarkus/extensions/kogito-quarkus-predictions-extension/kogito-quarkus-predictions-deployment/pom.xml
@@ -66,9 +66,6 @@
                             <version>${version.io.quarkus}</version>
                         </path>
                     </annotationProcessorPaths>
-                    <compilerArgs>
-                        <arg>-AlegacyConfigRoot=true</arg>
-                    </compilerArgs>
                 </configuration>
             </plugin>
         </plugins>
diff --git 
a/quarkus/extensions/kogito-quarkus-predictions-extension/kogito-quarkus-predictions/pom.xml
 
b/quarkus/extensions/kogito-quarkus-predictions-extension/kogito-quarkus-predictions/pom.xml
index f7432541b9..4680bc3036 100644
--- 
a/quarkus/extensions/kogito-quarkus-predictions-extension/kogito-quarkus-predictions/pom.xml
+++ 
b/quarkus/extensions/kogito-quarkus-predictions-extension/kogito-quarkus-predictions/pom.xml
@@ -95,9 +95,6 @@
                             <version>${version.io.quarkus}</version>
                         </path>
                     </annotationProcessorPaths>
-                    <compilerArgs>
-                        <arg>-AlegacyConfigRoot=true</arg>
-                    </compilerArgs>
                 </configuration>
             </plugin>
             <plugin>
diff --git 
a/quarkus/extensions/kogito-quarkus-processes-extension/kogito-quarkus-processes-deployment/pom.xml
 
b/quarkus/extensions/kogito-quarkus-processes-extension/kogito-quarkus-processes-deployment/pom.xml
index 0ec1d2bfc4..33b504e642 100644
--- 
a/quarkus/extensions/kogito-quarkus-processes-extension/kogito-quarkus-processes-deployment/pom.xml
+++ 
b/quarkus/extensions/kogito-quarkus-processes-extension/kogito-quarkus-processes-deployment/pom.xml
@@ -87,9 +87,6 @@
               <version>${version.io.quarkus}</version>
             </path>
           </annotationProcessorPaths>
-          <compilerArgs>
-            <arg>-AlegacyConfigRoot=true</arg>
-          </compilerArgs>
         </configuration>
       </plugin>
     </plugins>
diff --git 
a/quarkus/extensions/kogito-quarkus-processes-extension/kogito-quarkus-processes-deployment/src/main/java/org/kie/kogito/quarkus/processes/deployment/KogitoDevServicesProcessor.java
 
b/quarkus/extensions/kogito-quarkus-processes-extension/kogito-quarkus-processes-deployment/src/main/java/org/kie/kogito/quarkus/processes/deployment/KogitoDevServicesProcessor.java
index 51e9b5b090..82d8324e0d 100644
--- 
a/quarkus/extensions/kogito-quarkus-processes-extension/kogito-quarkus-processes-deployment/src/main/java/org/kie/kogito/quarkus/processes/deployment/KogitoDevServicesProcessor.java
+++ 
b/quarkus/extensions/kogito-quarkus-processes-extension/kogito-quarkus-processes-deployment/src/main/java/org/kie/kogito/quarkus/processes/deployment/KogitoDevServicesProcessor.java
@@ -24,6 +24,8 @@ import java.util.Optional;
 import org.kie.kogito.quarkus.processes.devservices.DevModeWorkflowLogger;
 import org.kie.kogito.quarkus.workflow.deployment.AbstractDevServicesProcessor;
 import 
org.kie.kogito.quarkus.workflow.deployment.config.KogitoWorkflowBuildTimeConfig;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import io.quarkus.arc.deployment.AdditionalBeanBuildItem;
 import io.quarkus.arc.processor.DotNames;
@@ -33,7 +35,7 @@ import io.quarkus.deployment.annotations.BuildProducer;
 import io.quarkus.deployment.annotations.BuildStep;
 import io.quarkus.deployment.builditem.LaunchModeBuildItem;
 import io.quarkus.deployment.builditem.SystemPropertyBuildItem;
-import io.quarkus.deployment.dev.devservices.GlobalDevServicesConfig;
+import io.quarkus.deployment.dev.devservices.DevServicesConfig;
 import io.quarkus.devui.spi.page.CardPageBuildItem;
 import io.quarkus.devui.spi.page.Page;
 
@@ -44,6 +46,8 @@ import static 
org.kie.kogito.quarkus.workflow.devservices.DataIndexEventPublishe
  */
 public class KogitoDevServicesProcessor extends AbstractDevServicesProcessor {
 
+    private static final Logger LOGGER = 
LoggerFactory.getLogger(KogitoDevServicesProcessor.class);
+
     @BuildStep
     public void logger(BuildProducer<AdditionalBeanBuildItem> additionalBean, 
LaunchModeBuildItem launchMode, KogitoWorkflowBuildTimeConfig config) {
         if (shouldInclude(launchMode, config)) {
@@ -51,15 +55,21 @@ public class KogitoDevServicesProcessor extends 
AbstractDevServicesProcessor {
         }
     }
 
-    @BuildStep(onlyIf = { GlobalDevServicesConfig.Enabled.class, 
IsDevelopment.class })
-    CardPageBuildItem createDataIndexDevUILink(Capabilities capabilities,
+    @BuildStep(onlyIf = { DevServicesConfig.Enabled.class, IsDevelopment.class 
})
+    void createDataIndexDevUILink(BuildProducer<CardPageBuildItem> 
cardsProducer,
+            Capabilities capabilities,
             KogitoWorkflowBuildTimeConfig kogitoBuildTimeConfig,
             List<SystemPropertyBuildItem> systemPropertyBuildItems) {
 
+        if (!kogitoBuildTimeConfig.devServicesConfig().enabled()) {
+            LOGGER.info("Kogito DevServices are disabled. Skipping Dev UI Card 
initialization");
+            return;
+        }
+
         Optional<String> dataIndexUrlProp = 
getProperty(systemPropertyBuildItems, KOGITO_DATA_INDEX);
 
-        if (capabilities.isPresent(DATA_INDEX_CAPABILITY) || 
!areDevServicesEnabled(kogitoBuildTimeConfig) || dataIndexUrlProp.isEmpty()) {
-            return null;
+        if (capabilities.isPresent(DATA_INDEX_CAPABILITY) || 
dataIndexUrlProp.isEmpty()) {
+            return;
         }
 
         CardPageBuildItem cardPageBuildItem = new CardPageBuildItem();
@@ -67,10 +77,7 @@ public class KogitoDevServicesProcessor extends 
AbstractDevServicesProcessor {
                 .url(dataIndexUrlProp.get() + "/q/graphql-ui/")
                 .isHtmlContent()
                 .icon("font-awesome-solid:signs-post"));
-        return cardPageBuildItem;
-    }
 
-    private boolean areDevServicesEnabled(KogitoWorkflowBuildTimeConfig 
kogitoBuildTimeConfig) {
-        return kogitoBuildTimeConfig.devservices.enabled.orElse(true);
+        cardsProducer.produce(cardPageBuildItem);
     }
 }
diff --git 
a/quarkus/extensions/kogito-quarkus-processes-extension/kogito-quarkus-processes/pom.xml
 
b/quarkus/extensions/kogito-quarkus-processes-extension/kogito-quarkus-processes/pom.xml
index e3aaeb3909..6f608fe111 100644
--- 
a/quarkus/extensions/kogito-quarkus-processes-extension/kogito-quarkus-processes/pom.xml
+++ 
b/quarkus/extensions/kogito-quarkus-processes-extension/kogito-quarkus-processes/pom.xml
@@ -98,9 +98,6 @@
               <version>${version.io.quarkus}</version>
             </path>
           </annotationProcessorPaths>
-          <compilerArgs>
-            <arg>-AlegacyConfigRoot=true</arg>
-          </compilerArgs>
         </configuration>
       </plugin>
     </plugins>
diff --git 
a/quarkus/extensions/kogito-quarkus-rules-extension/kogito-quarkus-rules-deployment/pom.xml
 
b/quarkus/extensions/kogito-quarkus-rules-extension/kogito-quarkus-rules-deployment/pom.xml
index 31a223d470..3336f6660c 100644
--- 
a/quarkus/extensions/kogito-quarkus-rules-extension/kogito-quarkus-rules-deployment/pom.xml
+++ 
b/quarkus/extensions/kogito-quarkus-rules-extension/kogito-quarkus-rules-deployment/pom.xml
@@ -89,9 +89,6 @@
                             <version>${version.io.quarkus}</version>
                         </path>
                     </annotationProcessorPaths>
-                    <compilerArgs>
-                        <arg>-AlegacyConfigRoot=true</arg>
-                    </compilerArgs>
                 </configuration>
             </plugin>
         </plugins>
diff --git 
a/quarkus/extensions/kogito-quarkus-rules-extension/kogito-quarkus-rules/pom.xml
 
b/quarkus/extensions/kogito-quarkus-rules-extension/kogito-quarkus-rules/pom.xml
index bd51924497..ec86ffab09 100644
--- 
a/quarkus/extensions/kogito-quarkus-rules-extension/kogito-quarkus-rules/pom.xml
+++ 
b/quarkus/extensions/kogito-quarkus-rules-extension/kogito-quarkus-rules/pom.xml
@@ -98,9 +98,6 @@
                             <version>${version.io.quarkus}</version>
                         </path>
                     </annotationProcessorPaths>
-                    <compilerArgs>
-                        <arg>-AlegacyConfigRoot=true</arg>
-                    </compilerArgs>
                 </configuration>
             </plugin>
             <plugin>
diff --git 
a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/pom.xml
 
b/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/pom.xml
index 60f019ae86..5e08af4189 100644
--- 
a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/pom.xml
+++ 
b/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/pom.xml
@@ -128,9 +128,6 @@
               <version>${version.io.quarkus}</version>
             </path>
           </annotationProcessorPaths>
-          <compilerArgs>
-            <arg>-AlegacyConfigRoot=true</arg>
-          </compilerArgs>
         </configuration>
       </plugin>
     </plugins>
diff --git 
a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/deployment/ServerlessWorkflowDevServicesProcessor.java
 
b/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/deployment/ServerlessWorkflowDevServicesProcessor.java
index 31d86e51a5..704c431e3d 100644
--- 
a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/deployment/ServerlessWorkflowDevServicesProcessor.java
+++ 
b/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-deployment/src/main/java/org/kie/kogito/quarkus/serverless/workflow/deployment/ServerlessWorkflowDevServicesProcessor.java
@@ -24,6 +24,8 @@ import java.util.Optional;
 import org.kie.kogito.quarkus.workflow.deployment.AbstractDevServicesProcessor;
 import 
org.kie.kogito.quarkus.workflow.deployment.config.KogitoWorkflowBuildTimeConfig;
 import 
org.kie.kogito.serverless.workflow.devservices.DevModeServerlessWorkflowLogger;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import io.quarkus.arc.deployment.AdditionalBeanBuildItem;
 import io.quarkus.arc.processor.DotNames;
@@ -33,13 +35,16 @@ import io.quarkus.deployment.annotations.BuildProducer;
 import io.quarkus.deployment.annotations.BuildStep;
 import io.quarkus.deployment.builditem.LaunchModeBuildItem;
 import io.quarkus.deployment.builditem.SystemPropertyBuildItem;
-import io.quarkus.deployment.dev.devservices.GlobalDevServicesConfig;
+import io.quarkus.deployment.dev.devservices.DevServicesConfig;
 import io.quarkus.devui.spi.page.CardPageBuildItem;
 import io.quarkus.devui.spi.page.Page;
 
 import static 
org.kie.kogito.quarkus.workflow.devservices.DataIndexEventPublisher.KOGITO_DATA_INDEX;
 
 public class ServerlessWorkflowDevServicesProcessor extends 
AbstractDevServicesProcessor {
+
+    private static final Logger LOGGER = 
LoggerFactory.getLogger(ServerlessWorkflowDevServicesProcessor.class);
+
     @BuildStep
     public void logger(BuildProducer<AdditionalBeanBuildItem> additionalBean, 
LaunchModeBuildItem launchMode, KogitoWorkflowBuildTimeConfig config) {
         if (shouldInclude(launchMode, config)) {
@@ -47,15 +52,21 @@ public class ServerlessWorkflowDevServicesProcessor extends 
AbstractDevServicesP
         }
     }
 
-    @BuildStep(onlyIf = { GlobalDevServicesConfig.Enabled.class, 
IsDevelopment.class })
-    CardPageBuildItem createDataIndexDevUILink(Capabilities capabilities,
+    @BuildStep(onlyIf = { DevServicesConfig.Enabled.class, IsDevelopment.class 
})
+    void createDataIndexDevUILink(BuildProducer<CardPageBuildItem> 
cardsProducer,
+            Capabilities capabilities,
             KogitoWorkflowBuildTimeConfig kogitoBuildTimeConfig,
             List<SystemPropertyBuildItem> systemPropertyBuildItems) {
 
+        if (!kogitoBuildTimeConfig.devServicesConfig().enabled()) {
+            LOGGER.info("Kogito DevServices are disabled. Skipping Dev UI Card 
initialization");
+            return;
+        }
+
         Optional<String> dataIndexUrlProp = 
getProperty(systemPropertyBuildItems, KOGITO_DATA_INDEX);
 
-        if (capabilities.isPresent(DATA_INDEX_CAPABILITY) || 
!areDevServicesEnabled(kogitoBuildTimeConfig) || dataIndexUrlProp.isEmpty()) {
-            return null;
+        if (capabilities.isPresent(DATA_INDEX_CAPABILITY) || 
dataIndexUrlProp.isEmpty()) {
+            return;
         }
 
         CardPageBuildItem cardPageBuildItem = new CardPageBuildItem();
@@ -63,10 +74,7 @@ public class ServerlessWorkflowDevServicesProcessor extends 
AbstractDevServicesP
                 .url(dataIndexUrlProp.get() + "/q/graphql-ui/")
                 .isHtmlContent()
                 .icon("font-awesome-solid:signs-post"));
-        return cardPageBuildItem;
-    }
 
-    private boolean areDevServicesEnabled(KogitoWorkflowBuildTimeConfig 
kogitoBuildTimeConfig) {
-        return kogitoBuildTimeConfig.devservices.enabled.orElse(true);
+        cardsProducer.produce(cardPageBuildItem);
     }
 }
diff --git 
a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-integration-test/src/main/resources/application.properties
 
b/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-integration-test/src/main/resources/application.properties
index 2d342f7cd9..2dd9f51926 100644
--- 
a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-integration-test/src/main/resources/application.properties
+++ 
b/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow-integration-test/src/main/resources/application.properties
@@ -72,10 +72,6 @@ kogito.addon.messaging.unmarshaller.quiet=java
 mp.messaging.incoming.never.connector=quarkus-http
 mp.messaging.incoming.never.path=/never
 
-
-mp.messaging.incoming.eventTimeout1.connector=quarkus-http
-mp.messaging.incoming.eventTimeout1.path=/eventTimeout1
-
 mp.messaging.incoming.eventTimeout1.connector=quarkus-http
 mp.messaging.incoming.eventTimeout1.path=/eventTimeout1
 
diff --git 
a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow/pom.xml
 
b/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow/pom.xml
index b4fd204ce0..73d8daa5c0 100644
--- 
a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow/pom.xml
+++ 
b/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow/pom.xml
@@ -179,9 +179,6 @@
               <version>${version.io.quarkus}</version>
             </path>
           </annotationProcessorPaths>
-          <compilerArgs>
-            <arg>-AlegacyConfigRoot=true</arg>
-          </compilerArgs>
         </configuration>
       </plugin>
     </plugins>
diff --git 
a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow/src/main/java/org/kie/kogito/quarkus/serverless/workflow/config/KogitoBuildTimeConfig.java
 
b/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow/src/main/java/org/kie/kogito/quarkus/serverless/workflow/config/KogitoBuildTimeConfig.java
index 82ed922a10..501ba4dbb1 100644
--- 
a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow/src/main/java/org/kie/kogito/quarkus/serverless/workflow/config/KogitoBuildTimeConfig.java
+++ 
b/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow/src/main/java/org/kie/kogito/quarkus/serverless/workflow/config/KogitoBuildTimeConfig.java
@@ -18,16 +18,18 @@
  */
 package org.kie.kogito.quarkus.serverless.workflow.config;
 
-import io.quarkus.runtime.annotations.ConfigItem;
 import io.quarkus.runtime.annotations.ConfigPhase;
 import io.quarkus.runtime.annotations.ConfigRoot;
+import io.smallrye.config.ConfigMapping;
+import io.smallrye.config.WithName;
 
-@ConfigRoot(name = "", phase = ConfigPhase.BUILD_AND_RUN_TIME_FIXED, prefix = 
"kogito")
-public class KogitoBuildTimeConfig {
+@ConfigRoot(phase = ConfigPhase.BUILD_AND_RUN_TIME_FIXED)
+@ConfigMapping(prefix = "kogito")
+public interface KogitoBuildTimeConfig {
 
     /**
      * Serverless Workflow build time configuration
      */
-    @ConfigItem
-    public KogitoServerlessWorkflowBuildTimeConfig sw;
+    @WithName("sw")
+    KogitoServerlessWorkflowBuildTimeConfig swConfig();
 }
diff --git 
a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow/src/main/java/org/kie/kogito/quarkus/serverless/workflow/config/KogitoRPCRuntimeConfig.java
 
b/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow/src/main/java/org/kie/kogito/quarkus/serverless/workflow/config/KogitoRPCRuntimeConfig.java
index 3d20303fa5..6dad23046b 100644
--- 
a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow/src/main/java/org/kie/kogito/quarkus/serverless/workflow/config/KogitoRPCRuntimeConfig.java
+++ 
b/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow/src/main/java/org/kie/kogito/quarkus/serverless/workflow/config/KogitoRPCRuntimeConfig.java
@@ -19,22 +19,25 @@
 package org.kie.kogito.quarkus.serverless.workflow.config;
 
 import io.quarkus.runtime.annotations.ConfigGroup;
-import io.quarkus.runtime.annotations.ConfigItem;
+import io.smallrye.config.WithDefault;
+import io.smallrye.config.WithName;
 
 @ConfigGroup
-public class KogitoRPCRuntimeConfig {
+public interface KogitoRPCRuntimeConfig {
 
     /**
      * Indicates if default value of enumerations should be included in grpc 
response
      * 
      */
-    @ConfigItem(name = "enum.includeDefault", defaultValue = "false")
-    public boolean enumDefault;
+    @WithName("enum.includeDefault")
+    @WithDefault("false")
+    boolean enumDefault();
 
     /**
      * Time to wait for response from server when using streams
      * 
      */
-    @ConfigItem(name = "stream.timeout", defaultValue = "20")
-    public int streamTimeout;
+    @WithName("stream.timeout")
+    @WithDefault("20")
+    int streamTimeout();
 }
diff --git 
a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow/src/main/java/org/kie/kogito/quarkus/serverless/workflow/config/KogitoServerlessWorkflowBuildTimeConfig.java
 
b/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow/src/main/java/org/kie/kogito/quarkus/serverless/workflow/config/KogitoServerlessWorkflowBuildTimeConfig.java
index b65d47b847..9e6b53a612 100644
--- 
a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow/src/main/java/org/kie/kogito/quarkus/serverless/workflow/config/KogitoServerlessWorkflowBuildTimeConfig.java
+++ 
b/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow/src/main/java/org/kie/kogito/quarkus/serverless/workflow/config/KogitoServerlessWorkflowBuildTimeConfig.java
@@ -19,10 +19,11 @@
 package org.kie.kogito.quarkus.serverless.workflow.config;
 
 import io.quarkus.runtime.annotations.ConfigGroup;
-import io.quarkus.runtime.annotations.ConfigItem;
+import io.smallrye.config.WithDefault;
+import io.smallrye.config.WithName;
 
 @ConfigGroup
-public class KogitoServerlessWorkflowBuildTimeConfig {
+public interface KogitoServerlessWorkflowBuildTimeConfig {
 
     /**
      * Strategy for generating the configuration key of open API 
specifications.<br>
@@ -34,13 +35,15 @@ public class KogitoServerlessWorkflowBuildTimeConfig {
      * <LI>function_name. Uses the function name</LI>
      * </UL>
      */
-    @ConfigItem(name = "operationIdStrategy", defaultValue = "file_name")
-    public String operationIdStrategy;
+    @WithName("operationIdStrategy")
+    @WithDefault("file_name")
+    String operationIdStrategy();
 
     /**
      * Variable name for foreach loop
      */
-    @ConfigItem(name = "states.foreach.outputVarName", defaultValue = 
"_swf_eval_temp")
-    public String forEachOutputVarName;
+    @WithName("states.foreach.outputVarName")
+    @WithDefault("_swf_eval_temp")
+    String forEachOutputVarName();
 
 }
diff --git 
a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow/src/main/java/org/kie/kogito/quarkus/serverless/workflow/config/KogitoServerlessWorkflowRuntimeConfig.java
 
b/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow/src/main/java/org/kie/kogito/quarkus/serverless/workflow/config/KogitoServerlessWorkflowRuntimeConfig.java
index 544d8e363a..64f6ba0379 100644
--- 
a/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow/src/main/java/org/kie/kogito/quarkus/serverless/workflow/config/KogitoServerlessWorkflowRuntimeConfig.java
+++ 
b/quarkus/extensions/kogito-quarkus-serverless-workflow-extension/kogito-quarkus-serverless-workflow/src/main/java/org/kie/kogito/quarkus/serverless/workflow/config/KogitoServerlessWorkflowRuntimeConfig.java
@@ -18,17 +18,19 @@
  */
 package org.kie.kogito.quarkus.serverless.workflow.config;
 
-import io.quarkus.runtime.annotations.ConfigItem;
 import io.quarkus.runtime.annotations.ConfigPhase;
 import io.quarkus.runtime.annotations.ConfigRoot;
+import io.smallrye.config.ConfigMapping;
+import io.smallrye.config.WithName;
 
-@ConfigRoot(name = "", phase = ConfigPhase.RUN_TIME, prefix = "kogito")
-public class KogitoServerlessWorkflowRuntimeConfig {
+@ConfigRoot(phase = ConfigPhase.RUN_TIME)
+@ConfigMapping(prefix = "kogito")
+public interface KogitoServerlessWorkflowRuntimeConfig {
 
     /**
      * grpc runtime configuration
      */
-    @ConfigItem
-    public KogitoRPCRuntimeConfig grpc;
+    @WithName("grpc")
+    KogitoRPCRuntimeConfig grpcConfig();
 
 }
diff --git 
a/quarkus/extensions/kogito-quarkus-workflow-extension-common/kogito-quarkus-workflow-common-deployment/pom.xml
 
b/quarkus/extensions/kogito-quarkus-workflow-extension-common/kogito-quarkus-workflow-common-deployment/pom.xml
index ddb5c70ca8..cf9e3b9ea6 100644
--- 
a/quarkus/extensions/kogito-quarkus-workflow-extension-common/kogito-quarkus-workflow-common-deployment/pom.xml
+++ 
b/quarkus/extensions/kogito-quarkus-workflow-extension-common/kogito-quarkus-workflow-common-deployment/pom.xml
@@ -95,9 +95,6 @@
               <version>${version.io.quarkus}</version>
             </path>
           </annotationProcessorPaths>
-          <compilerArgs>
-            <arg>-AlegacyConfigRoot=true</arg>
-          </compilerArgs>
         </configuration>
       </plugin>
     </plugins>
diff --git 
a/quarkus/extensions/kogito-quarkus-workflow-extension-common/kogito-quarkus-workflow-common-deployment/src/main/java/org/kie/kogito/quarkus/workflow/deployment/AbstractDevServicesProcessor.java
 
b/quarkus/extensions/kogito-quarkus-workflow-extension-common/kogito-quarkus-workflow-common-deployment/src/main/java/org/kie/kogito/quarkus/workflow/deployment/AbstractDevServicesProcessor.java
index 7517da1c86..635fe68a29 100644
--- 
a/quarkus/extensions/kogito-quarkus-workflow-extension-common/kogito-quarkus-workflow-common-deployment/src/main/java/org/kie/kogito/quarkus/workflow/deployment/AbstractDevServicesProcessor.java
+++ 
b/quarkus/extensions/kogito-quarkus-workflow-extension-common/kogito-quarkus-workflow-common-deployment/src/main/java/org/kie/kogito/quarkus/workflow/deployment/AbstractDevServicesProcessor.java
@@ -47,7 +47,7 @@ import io.quarkus.deployment.builditem.LaunchModeBuildItem;
 import io.quarkus.deployment.builditem.SystemPropertyBuildItem;
 import io.quarkus.deployment.console.ConsoleInstalledBuildItem;
 import io.quarkus.deployment.console.StartupLogCompressor;
-import io.quarkus.deployment.dev.devservices.GlobalDevServicesConfig;
+import io.quarkus.deployment.dev.devservices.DevServicesConfig;
 import io.quarkus.deployment.logging.LoggingSetupBuildItem;
 import io.quarkus.devservices.common.ConfigureUtil;
 import io.quarkus.devservices.common.ContainerAddress;
@@ -68,7 +68,7 @@ public abstract class AbstractDevServicesProcessor {
     private final IsDockerWorking isDockerWorking = new IsDockerWorking(true);
 
     protected static boolean shouldInclude(LaunchModeBuildItem launchMode, 
KogitoWorkflowBuildTimeConfig config) {
-        return launchMode.getLaunchMode().isDevOrTest() || 
config.alwaysInclude;
+        return launchMode.getLaunchMode().isDevOrTest() || 
config.alwaysInclude();
     }
 
     protected Optional<String> getProperty(List<SystemPropertyBuildItem> 
systemPropertyBuildItems, String propertyKey) {
@@ -77,7 +77,7 @@ public abstract class AbstractDevServicesProcessor {
                 .map(SystemPropertyBuildItem::getValue);
     }
 
-    @BuildStep(onlyIf = { GlobalDevServicesConfig.Enabled.class, 
IsDevelopment.class })
+    @BuildStep(onlyIf = { DevServicesConfig.Enabled.class, IsDevelopment.class 
})
     public void startDataIndexDevService(
             BuildProducer<AdditionalBeanBuildItem> additionalBean,
             BuildProducer<SystemPropertyBuildItem> systemProperties,
@@ -90,6 +90,11 @@ public abstract class AbstractDevServicesProcessor {
             LoggingSetupBuildItem loggingSetup,
             Capabilities capabilities) {
 
+        if (!buildTimeConfig.devServicesConfig().enabled()) {
+            LOGGER.info("Kogito DevServices are disabled. Skipping Ephemeral 
DataIndex container initialization.");
+            return;
+        }
+
         DataIndexDevServiceConfig configuration = 
getConfiguration(buildTimeConfig);
 
         if (capabilities.isMissing(DATA_INDEX_CAPABILITY) && 
configuration.devServicesEnabled && isDockerWorking.getAsBoolean()) {
@@ -209,7 +214,7 @@ public abstract class AbstractDevServicesProcessor {
     }
 
     private DataIndexDevServiceConfig 
getConfiguration(KogitoWorkflowBuildTimeConfig cfg) {
-        KogitoDevServicesBuildTimeConfig devServicesConfig = cfg.devservices;
+        KogitoDevServicesBuildTimeConfig devServicesConfig = 
cfg.devServicesConfig();
         return new DataIndexDevServiceConfig(devServicesConfig);
     }
 
@@ -244,16 +249,16 @@ public abstract class AbstractDevServicesProcessor {
         private final String serviceName;
 
         public DataIndexDevServiceConfig(KogitoDevServicesBuildTimeConfig 
config) {
-            this.devServicesEnabled = config.enabled.orElse(true);
+            this.devServicesEnabled = config.enabled();
             //TODO Revert to ConfigureUtil.getDefaultImageNameFor
-            this.imageName = 
config.imageName.map(DockerImageName::parse).orElseGet(() -> {
+            this.imageName = 
config.imageName().map(DockerImageName::parse).orElseGet(() -> {
                 String defaultImageName = 
ConfigureUtil.getDefaultImageNameFor("data-index");
                 return DockerImageName.parse(defaultImageName);
             });
             this.imageName.assertValid();
-            this.fixedExposedPort = config.port.orElse(0);
-            this.shared = config.shared;
-            this.serviceName = config.serviceName;
+            this.fixedExposedPort = config.port().orElse(0);
+            this.shared = config.shared();
+            this.serviceName = config.serviceName();
         }
 
         @Override
diff --git 
a/quarkus/extensions/kogito-quarkus-workflow-extension-common/kogito-quarkus-workflow-common-deployment/src/main/java/org/kie/kogito/quarkus/workflow/deployment/config/KogitoDevServicesBuildTimeConfig.java
 
b/quarkus/extensions/kogito-quarkus-workflow-extension-common/kogito-quarkus-workflow-common-deployment/src/main/java/org/kie/kogito/quarkus/workflow/deployment/config/KogitoDevServicesBuildTimeConfig.java
index dcd9a98e2c..e996b76c04 100644
--- 
a/quarkus/extensions/kogito-quarkus-workflow-extension-common/kogito-quarkus-workflow-common-deployment/src/main/java/org/kie/kogito/quarkus/workflow/deployment/config/KogitoDevServicesBuildTimeConfig.java
+++ 
b/quarkus/extensions/kogito-quarkus-workflow-extension-common/kogito-quarkus-workflow-common-deployment/src/main/java/org/kie/kogito/quarkus/workflow/deployment/config/KogitoDevServicesBuildTimeConfig.java
@@ -21,31 +21,30 @@ package org.kie.kogito.quarkus.workflow.deployment.config;
 import java.util.Optional;
 
 import io.quarkus.runtime.annotations.ConfigGroup;
-import io.quarkus.runtime.annotations.ConfigItem;
+import io.smallrye.config.WithDefault;
 
 @ConfigGroup
-public class KogitoDevServicesBuildTimeConfig {
+public interface KogitoDevServicesBuildTimeConfig {
 
     /**
      * If Dev Services for Kogito has been explicitly enabled or disabled. Dev 
Services are generally enabled
      * by default, unless there is an existing configuration present.
      */
-    @ConfigItem
-    public Optional<Boolean> enabled = Optional.empty();
+    @WithDefault("true")
+    Boolean enabled();
 
     /**
      * Optional fixed port the dev service will listen to.
      * <p>
      * If not defined, 8180 will be used.
      */
-    @ConfigItem(defaultValue = "8180")
-    public Optional<Integer> port;
+    @WithDefault("8180")
+    Optional<Integer> port();
 
     /**
      * The Data Index image to use.
      */
-    @ConfigItem
-    public Optional<String> imageName;
+    Optional<String> imageName();
 
     /**
      * Indicates if the Data Index instance managed by Quarkus Dev Services is 
shared.
@@ -58,8 +57,8 @@ public class KogitoDevServicesBuildTimeConfig {
      * <p>
      * Container sharing is only used in dev mode.
      */
-    @ConfigItem(defaultValue = "true")
-    public boolean shared;
+    @WithDefault("true")
+    boolean shared();
 
     /**
      * The value of the {@code kogito-dev-service-data-index} label attached 
to the started container.
@@ -69,7 +68,7 @@ public class KogitoDevServicesBuildTimeConfig {
      * set to the configured value. If found, it will use this container 
instead of starting a new one. Otherwise, it
      * starts a new container with the {@code kogito-dev-service-data-index} 
label set to the specified value.
      */
-    @ConfigItem(defaultValue = "kogito-data-index")
-    public String serviceName;
+    @WithDefault("kogito-data-index")
+    String serviceName();
 
 }
diff --git 
a/quarkus/extensions/kogito-quarkus-workflow-extension-common/kogito-quarkus-workflow-common-deployment/src/main/java/org/kie/kogito/quarkus/workflow/deployment/config/KogitoWorkflowBuildTimeConfig.java
 
b/quarkus/extensions/kogito-quarkus-workflow-extension-common/kogito-quarkus-workflow-common-deployment/src/main/java/org/kie/kogito/quarkus/workflow/deployment/config/KogitoWorkflowBuildTimeConfig.java
index a5a74fd905..58c3760955 100644
--- 
a/quarkus/extensions/kogito-quarkus-workflow-extension-common/kogito-quarkus-workflow-common-deployment/src/main/java/org/kie/kogito/quarkus/workflow/deployment/config/KogitoWorkflowBuildTimeConfig.java
+++ 
b/quarkus/extensions/kogito-quarkus-workflow-extension-common/kogito-quarkus-workflow-common-deployment/src/main/java/org/kie/kogito/quarkus/workflow/deployment/config/KogitoWorkflowBuildTimeConfig.java
@@ -18,24 +18,28 @@
  */
 package org.kie.kogito.quarkus.workflow.deployment.config;
 
-import io.quarkus.runtime.annotations.ConfigItem;
 import io.quarkus.runtime.annotations.ConfigPhase;
 import io.quarkus.runtime.annotations.ConfigRoot;
+import io.smallrye.config.ConfigMapping;
+import io.smallrye.config.WithDefault;
+import io.smallrye.config.WithName;
 
-@ConfigRoot(name = "kogito", phase = ConfigPhase.BUILD_TIME)
-public class KogitoWorkflowBuildTimeConfig {
+@ConfigRoot(phase = ConfigPhase.BUILD_TIME)
+@ConfigMapping(prefix = "quarkus.kogito")
+public interface KogitoWorkflowBuildTimeConfig {
 
     /**
      * Configuration for DevServices. DevServices allows Quarkus to 
automatically start Data Index in dev and test mode.
      */
-    @ConfigItem
-    public KogitoDevServicesBuildTimeConfig devservices;
+    @WithName("devservices")
+    KogitoDevServicesBuildTimeConfig devServicesConfig();
 
     /**
      * Always include the Workflow debug logger. By default, this will only be 
included in dev and test.
      * Setting this to true will also include the Workflow debug logger in Prod
      */
-    @ConfigItem(name = "logger.always-include", defaultValue = "false")
-    public boolean alwaysInclude;
+    @WithName("logger.always-include")
+    @WithDefault("false")
+    boolean alwaysInclude();
 
 }
diff --git 
a/quarkus/extensions/kogito-quarkus-workflow-extension-common/kogito-quarkus-workflow-common/src/main/java/org/kie/kogito/quarkus/workflow/config/KogitoPersistenceBuildTimeConfig.java
 
b/quarkus/extensions/kogito-quarkus-workflow-extension-common/kogito-quarkus-workflow-common/src/main/java/org/kie/kogito/quarkus/workflow/config/KogitoPersistenceBuildTimeConfig.java
index 45bb42ac46..a85942ae7c 100644
--- 
a/quarkus/extensions/kogito-quarkus-workflow-extension-common/kogito-quarkus-workflow-common/src/main/java/org/kie/kogito/quarkus/workflow/config/KogitoPersistenceBuildTimeConfig.java
+++ 
b/quarkus/extensions/kogito-quarkus-workflow-extension-common/kogito-quarkus-workflow-common/src/main/java/org/kie/kogito/quarkus/workflow/config/KogitoPersistenceBuildTimeConfig.java
@@ -19,21 +19,24 @@
 package org.kie.kogito.quarkus.workflow.config;
 
 import io.quarkus.runtime.annotations.ConfigGroup;
-import io.quarkus.runtime.annotations.ConfigItem;
+import io.smallrye.config.WithDefault;
+import io.smallrye.config.WithName;
 
 @ConfigGroup
-public class KogitoPersistenceBuildTimeConfig {
+public interface KogitoPersistenceBuildTimeConfig {
 
     /**
      * Generate Protobuf marshallers for runtime
      */
-    @ConfigItem(name = "proto.marshaller", defaultValue = "true")
-    public boolean runtimeProtoMarshaller;
+    @WithName("proto.marshaller")
+    @WithDefault("true")
+    boolean runtimeProtoMarshaller();
 
     /**
      * Generate Protobuf marshallers for Data Index
      */
-    @ConfigItem(name = "data-index.proto.generation", defaultValue = "true")
-    public boolean dataIndexProtoMarshaller;
+    @WithName("data-index.proto.generation")
+    @WithDefault("true")
+    boolean dataIndexProtoMarshaller();
 
 }
diff --git 
a/quarkus/extensions/kogito-quarkus-workflow-extension-common/kogito-quarkus-workflow-common/src/main/java/org/kie/kogito/quarkus/workflow/config/KogitoPersistenceRuntimeConfig.java
 
b/quarkus/extensions/kogito-quarkus-workflow-extension-common/kogito-quarkus-workflow-common/src/main/java/org/kie/kogito/quarkus/workflow/config/KogitoPersistenceRuntimeConfig.java
index 0b770590de..90d64ee976 100644
--- 
a/quarkus/extensions/kogito-quarkus-workflow-extension-common/kogito-quarkus-workflow-common/src/main/java/org/kie/kogito/quarkus/workflow/config/KogitoPersistenceRuntimeConfig.java
+++ 
b/quarkus/extensions/kogito-quarkus-workflow-extension-common/kogito-quarkus-workflow-common/src/main/java/org/kie/kogito/quarkus/workflow/config/KogitoPersistenceRuntimeConfig.java
@@ -21,33 +21,36 @@ package org.kie.kogito.quarkus.workflow.config;
 import java.util.Optional;
 
 import io.quarkus.runtime.annotations.ConfigGroup;
-import io.quarkus.runtime.annotations.ConfigItem;
+import io.smallrye.config.WithDefault;
+import io.smallrye.config.WithName;
 
 @ConfigGroup
-public class KogitoPersistenceRuntimeConfig {
+public interface KogitoPersistenceRuntimeConfig {
 
     /**
      * Persistence DB type
      */
-    @ConfigItem
-    public Optional<PersistenceType> type;
+    Optional<PersistenceType> type();
 
     /**
      * Automatically apply database schema changes
      */
-    @ConfigItem(name = "auto.ddl", defaultValue = "true")
-    public boolean autoDDL;
+    @WithName("auto.ddl")
+    @WithDefault("true")
+    boolean autoDDL();
 
     /**
      * Use optimistic locking
      */
-    @ConfigItem(name = "optimistic.lock", defaultValue = "false")
-    public boolean optimisticLock;
+    @WithName("optimistic.lock")
+    @WithDefault("false")
+    boolean optimisticLock();
 
     /**
      * Query execution timeout
      */
-    @ConfigItem(name = "query.timeout.millis", defaultValue = "10000")
-    public long queryTimeout;
+    @WithName("query.timeout.millis")
+    @WithDefault("10000")
+    long queryTimeout();
 
 }
diff --git 
a/quarkus/extensions/kogito-quarkus-workflow-extension-common/kogito-quarkus-workflow-common/src/main/java/org/kie/kogito/quarkus/workflow/config/KogitoWorkflowBuildTimeConfig.java
 
b/quarkus/extensions/kogito-quarkus-workflow-extension-common/kogito-quarkus-workflow-common/src/main/java/org/kie/kogito/quarkus/workflow/config/KogitoWorkflowBuildTimeConfig.java
index fa8dae35e6..537fa77205 100644
--- 
a/quarkus/extensions/kogito-quarkus-workflow-extension-common/kogito-quarkus-workflow-common/src/main/java/org/kie/kogito/quarkus/workflow/config/KogitoWorkflowBuildTimeConfig.java
+++ 
b/quarkus/extensions/kogito-quarkus-workflow-extension-common/kogito-quarkus-workflow-common/src/main/java/org/kie/kogito/quarkus/workflow/config/KogitoWorkflowBuildTimeConfig.java
@@ -18,23 +18,27 @@
  */
 package org.kie.kogito.quarkus.workflow.config;
 
-import io.quarkus.runtime.annotations.ConfigItem;
 import io.quarkus.runtime.annotations.ConfigPhase;
 import io.quarkus.runtime.annotations.ConfigRoot;
+import io.smallrye.config.ConfigMapping;
+import io.smallrye.config.WithDefault;
+import io.smallrye.config.WithName;
 
-@ConfigRoot(name = "", phase = ConfigPhase.BUILD_AND_RUN_TIME_FIXED, prefix = 
"kogito")
-public class KogitoWorkflowBuildTimeConfig {
+@ConfigRoot(phase = ConfigPhase.BUILD_AND_RUN_TIME_FIXED)
+@ConfigMapping(prefix = "kogito")
+public interface KogitoWorkflowBuildTimeConfig {
 
     /**
      * Strategy to resolve a Process version to use
      */
-    @ConfigItem(name = "workflow.version-strategy", defaultValue = "workflow")
-    public String versionStrategy;
+    @WithName("workflow.version-strategy")
+    @WithDefault("workflow")
+    String versionStrategy();
 
     /**
      * Persistence build time configuration
      */
-    @ConfigItem
-    public KogitoPersistenceBuildTimeConfig persistence;
+    @WithName("persistence")
+    KogitoPersistenceBuildTimeConfig persistenceConfig();
 
 }
diff --git 
a/quarkus/extensions/kogito-quarkus-workflow-extension-common/kogito-quarkus-workflow-common/src/main/java/org/kie/kogito/quarkus/workflow/config/KogitoWorkflowRuntimeConfig.java
 
b/quarkus/extensions/kogito-quarkus-workflow-extension-common/kogito-quarkus-workflow-common/src/main/java/org/kie/kogito/quarkus/workflow/config/KogitoWorkflowRuntimeConfig.java
index 4f13ee9a71..acdd2281e4 100644
--- 
a/quarkus/extensions/kogito-quarkus-workflow-extension-common/kogito-quarkus-workflow-common/src/main/java/org/kie/kogito/quarkus/workflow/config/KogitoWorkflowRuntimeConfig.java
+++ 
b/quarkus/extensions/kogito-quarkus-workflow-extension-common/kogito-quarkus-workflow-common/src/main/java/org/kie/kogito/quarkus/workflow/config/KogitoWorkflowRuntimeConfig.java
@@ -18,17 +18,19 @@
  */
 package org.kie.kogito.quarkus.workflow.config;
 
-import io.quarkus.runtime.annotations.ConfigItem;
 import io.quarkus.runtime.annotations.ConfigPhase;
 import io.quarkus.runtime.annotations.ConfigRoot;
+import io.smallrye.config.ConfigMapping;
+import io.smallrye.config.WithName;
 
-@ConfigRoot(name = "", phase = ConfigPhase.RUN_TIME, prefix = "kogito")
-public class KogitoWorkflowRuntimeConfig {
+@ConfigRoot(phase = ConfigPhase.RUN_TIME)
+@ConfigMapping(prefix = "kogito")
+public interface KogitoWorkflowRuntimeConfig {
 
     /**
      * Persistence runtime configuration
      */
-    @ConfigItem
-    public KogitoPersistenceRuntimeConfig persistence;
+    @WithName("persistence")
+    public KogitoPersistenceRuntimeConfig persistenceConfig();
 
 }


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

Reply via email to