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;
}