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 <claus.ib...@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; + } + }