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/03/29 13:28:55 UTC

[camel] 01/02: CAMEL-18923: camel-xml-io-dsl - Fix bug with updating route configuration. Thanks to Raymond for reporting and test case.

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 15a2ef2948c6bcb38c7310083a565db351c481d1
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Wed Mar 29 15:26:44 2023 +0200

    CAMEL-18923: camel-xml-io-dsl - Fix bug with updating route configuration. Thanks to Raymond for reporting and test case.
---
 .../org/apache/camel/dsl/xml/io/XmlRoutesBuilderLoader.java    | 10 ++++++----
 .../apache/camel/dsl/xml/io/XmlRoutesBuilderLoaderTest.java    |  6 ++++--
 2 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/dsl/camel-xml-io-dsl/src/main/java/org/apache/camel/dsl/xml/io/XmlRoutesBuilderLoader.java b/dsl/camel-xml-io-dsl/src/main/java/org/apache/camel/dsl/xml/io/XmlRoutesBuilderLoader.java
index 88da0fdd20f..01068b81bee 100644
--- a/dsl/camel-xml-io-dsl/src/main/java/org/apache/camel/dsl/xml/io/XmlRoutesBuilderLoader.java
+++ b/dsl/camel-xml-io-dsl/src/main/java/org/apache/camel/dsl/xml/io/XmlRoutesBuilderLoader.java
@@ -23,7 +23,6 @@ import org.apache.camel.api.management.ManagedResource;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.builder.RouteConfigurationBuilder;
 import org.apache.camel.dsl.support.RouteBuilderLoaderSupport;
-import org.apache.camel.model.ModelCamelContext;
 import org.apache.camel.model.RouteConfigurationDefinition;
 import org.apache.camel.model.RouteConfigurationsDefinition;
 import org.apache.camel.model.RouteDefinition;
@@ -78,7 +77,7 @@ public class XmlRoutesBuilderLoader extends RouteBuilderLoaderSupport {
             }
 
             private void addRoutes(RoutesDefinition routes) {
-                CamelContextAware.trySetCamelContext(getRouteCollection(), getCamelContext());
+                CamelContextAware.trySetCamelContext(routes, getCamelContext());
 
                 // xml routes must be prepared in the same way java-dsl (via RoutesDefinition)
                 // so create a copy and use the fluent builder to add the route
@@ -88,9 +87,12 @@ public class XmlRoutesBuilderLoader extends RouteBuilderLoaderSupport {
             }
 
             private void addConfigurations(RouteConfigurationsDefinition configurations) {
-                CamelContextAware.trySetCamelContext(getRouteCollection(), getCamelContext());
+                CamelContextAware.trySetCamelContext(configurations, getCamelContext());
+
+                // xml routes must be prepared in the same way java-dsl (via RouteConfigurationDefinition)
+                // so create a copy and use the fluent builder to add the route
                 for (RouteConfigurationDefinition config : configurations.getRouteConfigurations()) {
-                    ((ModelCamelContext) getCamelContext()).addRouteConfiguration(config);
+                    getRouteConfigurationCollection().routeConfiguration(config);
                 }
             }
         };
diff --git a/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlRoutesBuilderLoaderTest.java b/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlRoutesBuilderLoaderTest.java
index 50e4d509283..a61d3d43716 100644
--- a/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlRoutesBuilderLoaderTest.java
+++ b/dsl/camel-xml-io-dsl/src/test/java/org/apache/camel/dsl/xml/io/XmlRoutesBuilderLoaderTest.java
@@ -17,6 +17,7 @@
 package org.apache.camel.dsl.xml.io;
 
 import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.builder.RouteConfigurationBuilder;
 import org.apache.camel.impl.DefaultCamelContext;
 import org.apache.camel.spi.Resource;
 import org.apache.camel.support.ResourceHelper;
@@ -119,11 +120,12 @@ public class XmlRoutesBuilderLoaderTest {
                          + "  </routeConfiguration>"
                          + "</routeConfigurations>";
         Resource resource = ResourceHelper.fromString("in-memory.xml", content);
-        RouteBuilder builder = (RouteBuilder) new XmlRoutesBuilderLoader().loadRoutesBuilder(resource);
+        RouteConfigurationBuilder builder
+                = (RouteConfigurationBuilder) new XmlRoutesBuilderLoader().loadRoutesBuilder(resource);
         DefaultCamelContext camelContext = new DefaultCamelContext();
         builder.setCamelContext(camelContext);
         builder.configuration();
 
-        assertFalse(camelContext.getRouteConfigurationDefinitions().isEmpty());
+        assertFalse(builder.getRouteConfigurationCollection().getRouteConfigurations().isEmpty());
     }
 }