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 2017/10/09 14:14:23 UTC
[2/3] camel git commit: Parse xml route tree in the same structure as
in java
Parse xml route tree in the same structure as in java
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/193c51d5
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/193c51d5
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/193c51d5
Branch: refs/heads/parser2
Commit: 193c51d585fd1a9288841682a066d0a1541d36a3
Parents: aed1326
Author: Claus Ibsen <da...@apache.org>
Authored: Mon Oct 9 15:28:10 2017 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Mon Oct 9 15:28:10 2017 +0200
----------------------------------------------------------------------
.../parser/helper/CamelXmlTreeParserHelper.java | 28 +++++++++++++++++---
.../camel/parser/xml/XmlParseTreeTest.java | 5 ++--
2 files changed, 27 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/193c51d5/tooling/camel-route-parser/src/main/java/org/apache/camel/parser/helper/CamelXmlTreeParserHelper.java
----------------------------------------------------------------------
diff --git a/tooling/camel-route-parser/src/main/java/org/apache/camel/parser/helper/CamelXmlTreeParserHelper.java b/tooling/camel-route-parser/src/main/java/org/apache/camel/parser/helper/CamelXmlTreeParserHelper.java
index a9a75d9..6125304 100644
--- a/tooling/camel-route-parser/src/main/java/org/apache/camel/parser/helper/CamelXmlTreeParserHelper.java
+++ b/tooling/camel-route-parser/src/main/java/org/apache/camel/parser/helper/CamelXmlTreeParserHelper.java
@@ -30,14 +30,36 @@ public final class CamelXmlTreeParserHelper {
private CamelXmlTreeParserHelper() {
}
- public static List<CamelNodeDetails> parseCamelRouteTree(Node route, String routeId, CamelNodeDetails parent,
+ public static List<CamelNodeDetails> parseCamelRouteTree(Node xmlNode, String routeId, CamelNodeDetails route,
String baseDir, String fullyQualifiedFileName) {
CamelNodeDetailsFactory nodeFactory = CamelNodeDetailsFactory.newInstance();
List<CamelNodeDetails> answer = new ArrayList<>();
- walkXmlTree(nodeFactory, route, parent);
- answer.add(parent);
+ walkXmlTree(nodeFactory, xmlNode, route);
+
+ // now parse the route node and build the correct model/tree structure of the EIPs
+ // re-create factory as we rebuild the tree
+ nodeFactory = CamelNodeDetailsFactory.newInstance();
+ CamelNodeDetails parent = route.getOutputs().get(0);
+
+ // we dont want the route element and only start with from
+ for (int i = 0; i < route.getOutputs().size(); i++) {
+ CamelNodeDetails node = route.getOutputs().get(i);
+ String name = node.getName();
+
+ if ("from".equals(name)) {
+ CamelNodeDetails from = nodeFactory.copyNode(null, "from", node);
+ from.setFileName(fullyQualifiedFileName);
+ answer.add(from);
+ parent = from;
+ } else {
+ // add straight to parent
+ parent.addOutput(node);
+ node.setFileName(fullyQualifiedFileName);
+ }
+ }
+
return answer;
}
http://git-wip-us.apache.org/repos/asf/camel/blob/193c51d5/tooling/camel-route-parser/src/test/java/org/apache/camel/parser/xml/XmlParseTreeTest.java
----------------------------------------------------------------------
diff --git a/tooling/camel-route-parser/src/test/java/org/apache/camel/parser/xml/XmlParseTreeTest.java b/tooling/camel-route-parser/src/test/java/org/apache/camel/parser/xml/XmlParseTreeTest.java
index d65f287..3fc26ff 100644
--- a/tooling/camel-route-parser/src/test/java/org/apache/camel/parser/xml/XmlParseTreeTest.java
+++ b/tooling/camel-route-parser/src/test/java/org/apache/camel/parser/xml/XmlParseTreeTest.java
@@ -42,7 +42,7 @@ public class XmlParseTreeTest {
assertEquals(1, list.size());
CamelNodeDetails details = list.get(0);
- assertEquals("org/apache/camel/camel/parser/xml/mycamel.xml", details.getFileName());
+ assertEquals("src/test/resources/org/apache/camel/camel/parser/xml/mycamel.xml", details.getFileName());
assertEquals("myRoute", details.getRouteId());
assertEquals(null, details.getMethodName());
assertEquals(null, details.getClassName());
@@ -50,8 +50,7 @@ public class XmlParseTreeTest {
String tree = details.dump(0);
LOG.info("\n" + tree);
- assertTrue(tree.contains("29\troute"));
- assertTrue(tree.contains("32\t from"));
+ assertTrue(tree.contains("32\tfrom"));
assertTrue(tree.contains("35\t transform"));
assertTrue(tree.contains("36\t simple"));
assertTrue(tree.contains("39\t to"));