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/10 08:32:15 UTC

[1/2] camel git commit: Parse java route tree a bit better for choice EIP

Repository: camel
Updated Branches:
  refs/heads/parser2 ce3f4e114 -> df70bdd76


Parse java route tree a bit better for choice EIP


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/49857113
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/49857113
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/49857113

Branch: refs/heads/parser2
Commit: 49857113d45ad4c290f662fa0ada4434437914bf
Parents: ce3f4e1
Author: Claus Ibsen <da...@apache.org>
Authored: Tue Oct 10 10:16:23 2017 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Tue Oct 10 10:16:23 2017 +0200

----------------------------------------------------------------------
 .../helper/CamelJavaTreeParserHelper.java       | 26 ++++++--------------
 .../parser/java/MyJavaDslRouteBuilder.java      |  5 ++--
 .../camel/parser/java/RoasterJavaDslTest.java   |  9 ++++---
 3 files changed, 17 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/49857113/tooling/camel-route-parser/src/main/java/org/apache/camel/parser/helper/CamelJavaTreeParserHelper.java
----------------------------------------------------------------------
diff --git a/tooling/camel-route-parser/src/main/java/org/apache/camel/parser/helper/CamelJavaTreeParserHelper.java b/tooling/camel-route-parser/src/main/java/org/apache/camel/parser/helper/CamelJavaTreeParserHelper.java
index d3d1531..774831f 100644
--- a/tooling/camel-route-parser/src/main/java/org/apache/camel/parser/helper/CamelJavaTreeParserHelper.java
+++ b/tooling/camel-route-parser/src/main/java/org/apache/camel/parser/helper/CamelJavaTreeParserHelper.java
@@ -106,9 +106,6 @@ public final class CamelJavaTreeParserHelper {
             CamelNodeDetails node = route.getOutputs().get(i);
             String name = node.getName();
 
-            // TODO: use camel catalog to know about these types and when to do what
-            // special for some EIPs such as choice
-
             if ("from".equals(name)) {
                 CamelNodeDetails from = nodeFactory.copyNode(null, "from", node);
                 from.setFileName(fullyQualifiedFileName);
@@ -117,27 +114,20 @@ public final class CamelJavaTreeParserHelper {
             } else if ("routeId".equals(name)) {
                 // should be set on the parent
                 parent.setRouteId(node.getRouteId());
+            } else if ("end".equals(name) || "endChoice".equals(name) || "endParent".equals(name) || "endRest".equals(name)
+                    || "endDoTry".equals(name) || "endHystrix".equals(name)) {
+                // parent should be grand parent
+                parent = parent.getParent();
             } else if ("choice".equals(name)) {
+                // special for some EIPs
                 CamelNodeDetails output = nodeFactory.copyNode(parent, name, node);
                 parent.addOutput(output);
                 parent = output;
-            } else if ("when".equals(name)) {
-                parent = grandParent(parent, "choice");
-                CamelNodeDetails output = nodeFactory.copyNode(parent, name, node);
-                parent.addOutput(output);
-                parent = output;
-            } else if ("otherwise".equals(name)) {
-                parent = grandParent(parent, "choice");
-                CamelNodeDetails output = nodeFactory.copyNode(parent, name, node);
-                parent.addOutput(output);
-                parent = output;
-            } else if ("end".equals(name) || "endChoice".equals(name) || "endDoTry".equals(name)) {
-                // special for ending otherwise, as we end it automatic in Java DSL so do a double end then
-                if ("otherwise".equals(parent.getName())) {
+            } else if ("when".equals(name) || "otherwise".equals(name)) {
+                // we are in a choice block so parent should be the first choice up the parent tree
+                while (!parent.getName().equals("from") && !"choice".equals(parent.getName())) {
                     parent = parent.getParent();
                 }
-                // parent should be grand parent
-                parent = parent.getParent();
             } else {
                 boolean hasOutput = hasOutput(name);
                 if (hasOutput) {

http://git-wip-us.apache.org/repos/asf/camel/blob/49857113/tooling/camel-route-parser/src/test/java/org/apache/camel/parser/java/MyJavaDslRouteBuilder.java
----------------------------------------------------------------------
diff --git a/tooling/camel-route-parser/src/test/java/org/apache/camel/parser/java/MyJavaDslRouteBuilder.java b/tooling/camel-route-parser/src/test/java/org/apache/camel/parser/java/MyJavaDslRouteBuilder.java
index 1a98ab8..078c70b 100644
--- a/tooling/camel-route-parser/src/test/java/org/apache/camel/parser/java/MyJavaDslRouteBuilder.java
+++ b/tooling/camel-route-parser/src/test/java/org/apache/camel/parser/java/MyJavaDslRouteBuilder.java
@@ -27,8 +27,9 @@ public class MyJavaDslRouteBuilder extends RouteBuilder {
             .setHeader("foo", constant("123"))
             .choice()
                 .when(header("foo"))
-                    .toD("log:a")
-                .when(header("bar"))
+                    .to("log:a")
+                    .toD("log:a2")
+                .when().header("bar")
                     .toD("log:b")
                 .otherwise()
                     .log("none")

http://git-wip-us.apache.org/repos/asf/camel/blob/49857113/tooling/camel-route-parser/src/test/java/org/apache/camel/parser/java/RoasterJavaDslTest.java
----------------------------------------------------------------------
diff --git a/tooling/camel-route-parser/src/test/java/org/apache/camel/parser/java/RoasterJavaDslTest.java b/tooling/camel-route-parser/src/test/java/org/apache/camel/parser/java/RoasterJavaDslTest.java
index dc6c63b..c6bc96b 100644
--- a/tooling/camel-route-parser/src/test/java/org/apache/camel/parser/java/RoasterJavaDslTest.java
+++ b/tooling/camel-route-parser/src/test/java/org/apache/camel/parser/java/RoasterJavaDslTest.java
@@ -55,9 +55,12 @@ public class RoasterJavaDslTest extends CamelTestSupport {
 
         assertTrue(tree.contains("25\tfrom"));
         assertTrue(tree.contains("27\t  setHeader"));
-        assertTrue(tree.contains("30\t      toD"));
-        assertTrue(tree.contains("33\t    otherwise"));
-        assertTrue(tree.contains("36\t  to"));
+        assertTrue(tree.contains("28\t  choice"));
+        assertTrue(tree.contains("30\t    to"));
+        assertTrue(tree.contains("31\t    toD"));
+        assertTrue(tree.contains("33\t    toD"));
+        assertTrue(tree.contains("35\t    log"));
+        assertTrue(tree.contains("37\t  to"));
     }
 
     @Test


[2/2] camel git commit: Added todo

Posted by da...@apache.org.
Added todo


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/df70bdd7
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/df70bdd7
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/df70bdd7

Branch: refs/heads/parser2
Commit: df70bdd76ed4ba9ec1fb5a9a6435a1590e6ea5a0
Parents: 4985711
Author: Claus Ibsen <da...@apache.org>
Authored: Tue Oct 10 10:32:02 2017 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Tue Oct 10 10:32:02 2017 +0200

----------------------------------------------------------------------
 .../java/org/apache/camel/maven/helper/RouteCoverageHelper.java   | 3 +++
 1 file changed, 3 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/df70bdd7/tooling/maven/camel-maven-plugin/src/main/java/org/apache/camel/maven/helper/RouteCoverageHelper.java
----------------------------------------------------------------------
diff --git a/tooling/maven/camel-maven-plugin/src/main/java/org/apache/camel/maven/helper/RouteCoverageHelper.java b/tooling/maven/camel-maven-plugin/src/main/java/org/apache/camel/maven/helper/RouteCoverageHelper.java
index d5a2971..7e1a8ae 100644
--- a/tooling/maven/camel-maven-plugin/src/main/java/org/apache/camel/maven/helper/RouteCoverageHelper.java
+++ b/tooling/maven/camel-maven-plugin/src/main/java/org/apache/camel/maven/helper/RouteCoverageHelper.java
@@ -38,6 +38,9 @@ public final class RouteCoverageHelper {
     private RouteCoverageHelper() {
     }
 
+    // TODO: improve this api what is returned
+    // TODO: move this to camel-route-parser
+
     public static List<KeyValueHolder<String, Integer>> parseDumpRouteCoverageByRouteId(String directory, String routeId) throws Exception {
         List<KeyValueHolder<String, Integer>> answer = new ArrayList<>();