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

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


The following commit(s) were added to refs/heads/main by this push:
     new 617900b322 Move RUNTIME_INIT CamelContext customizations to 
CamelContextCustomizers
617900b322 is described below

commit 617900b322d872b8382d295631150a5c94bf10b6
Author: James Netherton <[email protected]>
AuthorDate: Mon Aug 18 14:01:02 2025 +0100

    Move RUNTIME_INIT CamelContext customizations to CamelContextCustomizers
    
    Fixes #7640
---
 .../core/deployment/CamelContextProcessor.java     |  7 ++--
 .../camel/quarkus/core/CamelContextRecorder.java   | 12 ++++---
 .../component/ldap/deployment/LdapProcessor.java   | 10 ++----
 .../quarkus/component/ldap/CamelLdapRecorder.java  | 38 ++++++++++++----------
 4 files changed, 34 insertions(+), 33 deletions(-)

diff --git 
a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelContextProcessor.java
 
b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelContextProcessor.java
index e00736df2b..9db50cf778 100644
--- 
a/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelContextProcessor.java
+++ 
b/extensions-core/core/deployment/src/main/java/org/apache/camel/quarkus/core/deployment/CamelContextProcessor.java
@@ -46,6 +46,7 @@ import 
org.apache.camel.quarkus.core.deployment.spi.CamelModelToYAMLDumperBuildI
 import 
org.apache.camel.quarkus.core.deployment.spi.CamelPackageScanClassResolverBuildItem;
 import org.apache.camel.quarkus.core.deployment.spi.CamelRegistryBuildItem;
 import 
org.apache.camel.quarkus.core.deployment.spi.CamelTypeConverterRegistryBuildItem;
+import 
org.apache.camel.quarkus.core.deployment.spi.RuntimeCamelContextCustomizerBuildItem;
 import org.apache.camel.quarkus.core.deployment.util.CamelSupport;
 import org.apache.camel.spi.ModelJAXBContextFactory;
 import org.apache.camel.spi.TypeConverterRegistry;
@@ -193,10 +194,8 @@ public class CamelContextProcessor {
 
     @Record(ExecutionTime.RUNTIME_INIT)
     @BuildStep
-    void registerDataFormatLifecycleStrategy(
-            CamelContextBuildItem camelContext,
-            CamelContextRecorder recorder) {
-        
recorder.registerDataFormatLifecycleStrategy(camelContext.getCamelContext());
+    RuntimeCamelContextCustomizerBuildItem 
registerDataFormatLifecycleStrategy(CamelContextRecorder recorder) {
+        return new 
RuntimeCamelContextCustomizerBuildItem(recorder.registerDataFormatLifecycleStrategy());
     }
 
     public static final class EventBridgeEnabled implements BooleanSupplier {
diff --git 
a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelContextRecorder.java
 
b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelContextRecorder.java
index 3c759047a2..84fb280f3a 100644
--- 
a/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelContextRecorder.java
+++ 
b/extensions-core/core/runtime/src/main/java/org/apache/camel/quarkus/core/CamelContextRecorder.java
@@ -192,9 +192,13 @@ public class CamelContextRecorder {
         return new RuntimeValue<>(clock);
     }
 
-    public void registerDataFormatLifecycleStrategy(RuntimeValue<CamelContext> 
context) {
-        CamelContext camelContext = context.getValue();
-        camelContext.addLifecycleStrategy(
-                new 
CamelQuarkusDataFormatConfigLifecycleStrategy(camelContext, 
dataFormatConfig.getValue()));
+    public RuntimeValue<CamelContextCustomizer> 
registerDataFormatLifecycleStrategy() {
+        return new RuntimeValue<>(new CamelContextCustomizer() {
+            @Override
+            public void configure(CamelContext camelContext) {
+                camelContext.addLifecycleStrategy(
+                        new 
CamelQuarkusDataFormatConfigLifecycleStrategy(camelContext, 
dataFormatConfig.getValue()));
+            }
+        });
     }
 }
diff --git 
a/extensions/ldap/deployment/src/main/java/org/apache/camel/quarkus/component/ldap/deployment/LdapProcessor.java
 
b/extensions/ldap/deployment/src/main/java/org/apache/camel/quarkus/component/ldap/deployment/LdapProcessor.java
index b1575ccfca..8aaf1c9d4f 100644
--- 
a/extensions/ldap/deployment/src/main/java/org/apache/camel/quarkus/component/ldap/deployment/LdapProcessor.java
+++ 
b/extensions/ldap/deployment/src/main/java/org/apache/camel/quarkus/component/ldap/deployment/LdapProcessor.java
@@ -24,7 +24,7 @@ import io.quarkus.deployment.builditem.AllowJNDIBuildItem;
 import io.quarkus.deployment.builditem.FeatureBuildItem;
 import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem;
 import org.apache.camel.quarkus.component.ldap.CamelLdapRecorder;
-import org.apache.camel.quarkus.core.deployment.spi.CamelContextBuildItem;
+import 
org.apache.camel.quarkus.core.deployment.spi.RuntimeCamelContextCustomizerBuildItem;
 
 class LdapProcessor {
 
@@ -50,11 +50,7 @@ class LdapProcessor {
 
     @BuildStep
     @Record(ExecutionTime.RUNTIME_INIT)
-    void createDirContexts(
-            CamelContextBuildItem context,
-            CamelLdapRecorder camelLdapRecorder) {
-
-        camelLdapRecorder.createDirContexts(context.getCamelContext());
+    RuntimeCamelContextCustomizerBuildItem 
configureDirContexts(CamelLdapRecorder camelLdapRecorder) {
+        return new 
RuntimeCamelContextCustomizerBuildItem(camelLdapRecorder.createDirContexts());
     }
-
 }
diff --git 
a/extensions/ldap/runtime/src/main/java/org/apache/camel/quarkus/component/ldap/CamelLdapRecorder.java
 
b/extensions/ldap/runtime/src/main/java/org/apache/camel/quarkus/component/ldap/CamelLdapRecorder.java
index 31cef50a38..0fb6a451c8 100644
--- 
a/extensions/ldap/runtime/src/main/java/org/apache/camel/quarkus/component/ldap/CamelLdapRecorder.java
+++ 
b/extensions/ldap/runtime/src/main/java/org/apache/camel/quarkus/component/ldap/CamelLdapRecorder.java
@@ -23,6 +23,7 @@ import javax.naming.Context;
 import io.quarkus.runtime.RuntimeValue;
 import io.quarkus.runtime.annotations.Recorder;
 import org.apache.camel.CamelContext;
+import org.apache.camel.spi.CamelContextCustomizer;
 
 @Recorder
 public class CamelLdapRecorder {
@@ -32,24 +33,25 @@ public class CamelLdapRecorder {
         this.config = config;
     }
 
-    public void createDirContexts(RuntimeValue<CamelContext> 
contextRuntimeValue) {
-        CamelContext context = contextRuntimeValue.getValue();
-
-        config.getValue().dirContexts().keySet().forEach(contextName -> {
-
-            CamelLdapConfig.LdapDirContextConfig dirConfig = 
config.getValue().dirContexts().get(contextName);
-
-            Hashtable<String, Object> env = new Hashtable<String, Object>();
-            dirConfig.initialContextFactory().ifPresent(v -> 
env.put(Context.INITIAL_CONTEXT_FACTORY, v));
-            dirConfig.providerUrl().ifPresent(v -> 
env.put(Context.PROVIDER_URL, v));
-            env.put(Context.SECURITY_AUTHENTICATION, 
dirConfig.securityAuthentication());
-            dirConfig.securityProtocol().ifPresent(v -> 
env.put(Context.SECURITY_PROTOCOL, v));
-            dirConfig.socketFactory().ifPresent(v -> 
env.put("java.naming.ldap.factory.socket", v));
-
-            //additional options
-            dirConfig.additionalOptions().entrySet().forEach(e -> 
env.put(e.getKey(), e.getValue()));
-
-            context.getRegistry().bind(contextName, env);
+    public RuntimeValue<CamelContextCustomizer> createDirContexts() {
+        return new RuntimeValue<CamelContextCustomizer>(new 
CamelContextCustomizer() {
+            public void configure(CamelContext camelContext) {
+                config.getValue().dirContexts().keySet().forEach(contextName 
-> {
+                    CamelLdapConfig.LdapDirContextConfig dirConfig = 
config.getValue().dirContexts().get(contextName);
+
+                    Hashtable<String, Object> env = new Hashtable<>();
+                    dirConfig.initialContextFactory().ifPresent(v -> 
env.put(Context.INITIAL_CONTEXT_FACTORY, v));
+                    dirConfig.providerUrl().ifPresent(v -> 
env.put(Context.PROVIDER_URL, v));
+                    env.put(Context.SECURITY_AUTHENTICATION, 
dirConfig.securityAuthentication());
+                    dirConfig.securityProtocol().ifPresent(v -> 
env.put(Context.SECURITY_PROTOCOL, v));
+                    dirConfig.socketFactory().ifPresent(v -> 
env.put("java.naming.ldap.factory.socket", v));
+
+                    //additional options
+                    env.putAll(dirConfig.additionalOptions());
+
+                    camelContext.getRegistry().bind(contextName, env);
+                });
+            }
         });
     }
 }

Reply via email to