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 2024/10/29 14:19:44 UTC
(camel) 07/08: CAMEL-21391: Add support for in model to xml dumper
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch df
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 4a01937971cd20ef2e8584250254d7358934e486
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Tue Oct 29 14:25:54 2024 +0100
CAMEL-21391: Add support for <dataFormats> in model to xml dumper
---
.../org/apache/camel/dsl/xml/io/XmlModelParser.java | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/dsl/camel-xml-io-dsl/src/main/java/org/apache/camel/dsl/xml/io/XmlModelParser.java b/dsl/camel-xml-io-dsl/src/main/java/org/apache/camel/dsl/xml/io/XmlModelParser.java
index 5fe845c438e..daf0ec32705 100644
--- a/dsl/camel-xml-io-dsl/src/main/java/org/apache/camel/dsl/xml/io/XmlModelParser.java
+++ b/dsl/camel-xml-io-dsl/src/main/java/org/apache/camel/dsl/xml/io/XmlModelParser.java
@@ -48,6 +48,10 @@ public class XmlModelParser extends ModelParser {
if (isWithinCamelContext(namespace, name) || isAriesBlueprint(namespace)) {
return true;
}
+ // support loading embedded <dataFormats> in <camel> XML files
+ if ("dataFormats".equals(name) && isCamelRoot("dataFormats")) {
+ return true;
+ }
return super.handleUnexpectedElement(namespace, name);
}
@@ -80,4 +84,17 @@ public class XmlModelParser extends ModelParser {
}
return false;
}
+
+ private boolean isCamelRoot(String name) {
+ String[] stack = parser.getNames();
+ for (int i = 0; i < stack.length - 1; i++) {
+ String cur = stack[i];
+ String next = stack[i + 1];
+ if ("camel".equals(cur) && name.equals(next)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
}