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 2023/10/13 16:34:47 UTC
[camel] branch camel-3.x updated: CAMEL-19967: Fix RouteBuilder/RouteConfigurationBuilder to ensure CamelContext is inject eager. This fixes a problem with using global route configurations in Java and XML DSLs mixed. (#11719)
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch camel-3.x
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/camel-3.x by this push:
new 2204d1dedb6 CAMEL-19967: Fix RouteBuilder/RouteConfigurationBuilder to ensure CamelContext is inject eager. This fixes a problem with using global route configurations in Java and XML DSLs mixed. (#11719)
2204d1dedb6 is described below
commit 2204d1dedb65296cad3f5df0f6235d4898c933bd
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Fri Oct 13 17:28:53 2023 +0200
CAMEL-19967: Fix RouteBuilder/RouteConfigurationBuilder to ensure CamelContext is inject eager. This fixes a problem with using global route configurations in Java and XML DSLs mixed. (#11719)
---
.../java/org/apache/camel/builder/RouteBuilder.java | 20 +++++++++++++++-----
.../camel/builder/RouteConfigurationBuilder.java | 6 ++++++
2 files changed, 21 insertions(+), 5 deletions(-)
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/builder/RouteBuilder.java b/core/camel-core-model/src/main/java/org/apache/camel/builder/RouteBuilder.java
index d2eaf24ba07..f861dd30914 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/builder/RouteBuilder.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/builder/RouteBuilder.java
@@ -706,14 +706,11 @@ public abstract class RouteBuilder extends BuilderSupport implements RoutesBuild
// Implementation methods
// -----------------------------------------------------------------------
+
protected void checkInitialized() throws Exception {
if (initialized.compareAndSet(false, true)) {
- // Set the CamelContext ErrorHandler here
CamelContext camelContext = getContext();
- if (camelContext.adapt(ExtendedCamelContext.class).getErrorHandlerFactory() != null) {
- setErrorHandlerFactory(
- camelContext.adapt(ExtendedCamelContext.class).getErrorHandlerFactory());
- }
+ initializeCamelContext(camelContext);
List<RouteBuilderLifecycleStrategy> strategies = new ArrayList<>(lifecycleInterceptors);
strategies.addAll(camelContext.getRegistry().findByType(RouteBuilderLifecycleStrategy.class));
@@ -739,6 +736,19 @@ public abstract class RouteBuilder extends BuilderSupport implements RoutesBuild
}
}
+ protected void initializeCamelContext(CamelContext camelContext) {
+ // Set the CamelContext ErrorHandler here
+ if (camelContext.adapt(ExtendedCamelContext.class).getErrorHandlerFactory() != null) {
+ setErrorHandlerFactory(
+ camelContext.adapt(ExtendedCamelContext.class).getErrorHandlerFactory());
+ }
+ // inject camel context on collections
+ getRouteCollection().setCamelContext(camelContext);
+ getRestCollection().setCamelContext(camelContext);
+ getRouteTemplateCollection().setCamelContext(camelContext);
+ getTemplatedRouteCollection().setCamelContext(camelContext);
+ }
+
protected void populateTemplatedRoutes() throws Exception {
populateTemplatedRoutes(notNullCamelContext());
}
diff --git a/core/camel-core-model/src/main/java/org/apache/camel/builder/RouteConfigurationBuilder.java b/core/camel-core-model/src/main/java/org/apache/camel/builder/RouteConfigurationBuilder.java
index 0b22d14404f..b97083a3843 100644
--- a/core/camel-core-model/src/main/java/org/apache/camel/builder/RouteConfigurationBuilder.java
+++ b/core/camel-core-model/src/main/java/org/apache/camel/builder/RouteConfigurationBuilder.java
@@ -97,6 +97,12 @@ public abstract class RouteConfigurationBuilder extends RouteBuilder implements
}
}
+ @Override
+ protected void initializeCamelContext(CamelContext camelContext) {
+ super.initializeCamelContext(camelContext);
+ getRouteConfigurationCollection().setCamelContext(camelContext);
+ }
+
protected void populateRoutesConfiguration() throws Exception {
CamelContext camelContext = getContext();
if (camelContext == null) {