You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2022/02/02 15:13:00 UTC

[camel] 02/02: CAMEL-17569: camel-jbang and java-dsl: Support loading camel configuration classes, and servicies (BindToRegistry).

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

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

commit fc7df19986fe63de7d04f9d92d8036c8c8967984
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Feb 2 16:12:14 2022 +0100

    CAMEL-17569: camel-jbang and java-dsl: Support loading camel configuration classes, and servicies (BindToRegistry).
---
 .../dsl/java/joor/JavaRoutesBuilderLoader.java     | 26 +++++++---------------
 1 file changed, 8 insertions(+), 18 deletions(-)

diff --git a/dsl/camel-java-joor-dsl/src/main/java/org/apache/camel/dsl/java/joor/JavaRoutesBuilderLoader.java b/dsl/camel-java-joor-dsl/src/main/java/org/apache/camel/dsl/java/joor/JavaRoutesBuilderLoader.java
index 3ec8e0a..dd149db 100644
--- a/dsl/camel-java-joor-dsl/src/main/java/org/apache/camel/dsl/java/joor/JavaRoutesBuilderLoader.java
+++ b/dsl/camel-java-joor-dsl/src/main/java/org/apache/camel/dsl/java/joor/JavaRoutesBuilderLoader.java
@@ -22,6 +22,7 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 import org.apache.camel.BindToRegistry;
+import org.apache.camel.CamelConfiguration;
 import org.apache.camel.Configuration;
 import org.apache.camel.Converter;
 import org.apache.camel.ExtendedCamelContext;
@@ -84,12 +85,14 @@ public class JavaRoutesBuilderLoader extends RouteBuilderLoaderSupport {
                 return (RouteBuilder) obj;
             } else if (obj != null) {
                 BindToRegistry bir = obj.getClass().getAnnotation(BindToRegistry.class);
-                if (bir != null) {
+                Configuration cfg = obj.getClass().getAnnotation(Configuration.class);
+                if (bir != null || cfg != null || obj instanceof CamelConfiguration) {
                     CamelBeanPostProcessor bpp = getCamelContext().adapt(ExtendedCamelContext.class).getBeanPostProcessor();
-                    if (ObjectHelper.isNotEmpty(bir.value())) {
+                    if (bir != null && ObjectHelper.isNotEmpty(bir.value())) {
                         name = bir.value();
+                    } else if (cfg != null && ObjectHelper.isNotEmpty(cfg.value())) {
+                        name = cfg.value();
                     }
-
                     // to support hot reloading of beans then we need to enable unbind mode in bean post processor
                     bpp.setUnbindEnabled(true);
                     try {
@@ -100,21 +103,8 @@ public class JavaRoutesBuilderLoader extends RouteBuilderLoaderSupport {
                     } finally {
                         bpp.setUnbindEnabled(false);
                     }
-                    return null;
-                }
-                Configuration cfg = obj.getClass().getAnnotation(Configuration.class);
-                if (cfg != null) {
-                    CamelBeanPostProcessor bpp = getCamelContext().adapt(ExtendedCamelContext.class).getBeanPostProcessor();
-
-                    // to support hot reloading of beans then we need to enable unbind mode in bean post processor
-                    bpp.setUnbindEnabled(true);
-                    try {
-                        // this class is a bean service which needs to be post processed and registered which happens
-                        // automatic by the bean post processor
-                        bpp.postProcessBeforeInitialization(obj, name);
-                        bpp.postProcessAfterInitialization(obj, name);
-                    } finally {
-                        bpp.setUnbindEnabled(false);
+                    if (obj instanceof CamelConfiguration) {
+                        ((CamelConfiguration) obj).configure(getCamelContext());
                     }
                     return null;
                 }