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/02/03 14:08:07 UTC

[camel] branch camel-3.x updated: CAMEL-19004: parse routeConfigurations with XML namespace (#9293)

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 c09d3a54681 CAMEL-19004: parse routeConfigurations with XML namespace (#9293)
c09d3a54681 is described below

commit c09d3a546812d42c176db68c9fe3aa3dcab367e1
Author: Tomáš Turek <tt...@redhat.com>
AuthorDate: Fri Feb 3 15:06:08 2023 +0100

    CAMEL-19004: parse routeConfigurations with XML namespace (#9293)
    
    Signed-off-by: Tomas Turek <tt...@redhat.com>
---
 .../camel/dsl/xml/io/XmlRoutesBuilderLoader.java    |  3 +++
 .../dsl/xml/io/XmlRoutesBuilderLoaderTest.java      | 21 +++++++++++++++++++++
 2 files changed, 24 insertions(+)

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 5bd01a9af45..6c95443e2ee 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
@@ -71,6 +71,9 @@ public class XmlRoutesBuilderLoader extends RouteBuilderLoaderSupport {
 
             @Override
             public void configuration() throws Exception {
+                new ModelParser(resource, NAMESPACE)
+                        .parseRouteConfigurationsDefinition()
+                        .ifPresent(this::addConfigurations);
                 new ModelParser(resource)
                         .parseRouteConfigurationsDefinition()
                         .ifPresent(this::addConfigurations);
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 ff760c23395..a0e6d565631 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
@@ -87,4 +87,25 @@ public class XmlRoutesBuilderLoaderTest {
 
         assertFalse(builder.getRouteTemplateCollection().getRouteTemplates().isEmpty());
     }
+
+    @Test
+    public void canLoadRouteConfigurations() throws Exception {
+        String content = ""
+                         + "<routeConfigurations xmlns=\"http://camel.apache.org/schema/spring\">"
+                         + "  <routeConfiguration>"
+                         + "    <onException>"
+                         + "      <exception>java.lang.Exception</exception>"
+                         + "      <handled><constant>true</constant></handled>"
+                         + "      <log message=\"XML WARN: ${exception.message}\"/>"
+                         + "    </onException>"
+                         + "  </routeConfiguration>"
+                         + "</routeConfigurations>";
+        Resource resource = ResourceHelper.fromString("in-memory.xml", content);
+        RouteBuilder builder = (RouteBuilder) new XmlRoutesBuilderLoader().loadRoutesBuilder(resource);
+        DefaultCamelContext camelContext = new DefaultCamelContext();
+        builder.setCamelContext(camelContext);
+        builder.configuration();
+
+        assertFalse(camelContext.getRouteConfigurationDefinitions().isEmpty());
+    }
 }