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/14 12:49:42 UTC

camel git commit: CAMEL-11910: camel-maven-plugin - validate should not include route ids as consumer urls

Repository: camel
Updated Branches:
  refs/heads/camel-2.20.x f6d794f7d -> 0fe49998e


CAMEL-11910: camel-maven-plugin - validate should not include route ids as consumer urls


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

Branch: refs/heads/camel-2.20.x
Commit: 0fe49998eac127969e8d9111aec9a02912d5a3b9
Parents: f6d794f
Author: Claus Ibsen <da...@apache.org>
Authored: Sat Oct 14 14:44:55 2017 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Sat Oct 14 14:49:14 2017 +0200

----------------------------------------------------------------------
 .../apache/camel/parser/RouteBuilderParser.java |  4 +--
 .../parser/helper/CamelJavaParserHelper.java    | 28 +++++++++++++-------
 ...DuplicateIdBuilderDCamelTestSupportTest.java |  8 +++---
 .../camel/parser/java/SimpleProcessorTest.java  |  2 +-
 4 files changed, 27 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/0fe49998/tooling/camel-route-parser/src/main/java/org/apache/camel/parser/RouteBuilderParser.java
----------------------------------------------------------------------
diff --git a/tooling/camel-route-parser/src/main/java/org/apache/camel/parser/RouteBuilderParser.java b/tooling/camel-route-parser/src/main/java/org/apache/camel/parser/RouteBuilderParser.java
index d38e1d6..5be3a71 100644
--- a/tooling/camel-route-parser/src/main/java/org/apache/camel/parser/RouteBuilderParser.java
+++ b/tooling/camel-route-parser/src/main/java/org/apache/camel/parser/RouteBuilderParser.java
@@ -284,10 +284,10 @@ public final class RouteBuilderParser {
 
         MethodSource<JavaClassSource> method = CamelJavaParserHelper.findConfigureMethod(clazz);
         if (method != null) {
-            List<ParserResult> expressions = CamelJavaParserHelper.parseCamelConsumerUris(method, true, false);
+            List<ParserResult> expressions = CamelJavaParserHelper.parseCamelRouteIds(method);
             for (ParserResult result : expressions) {
                 // route ids is assigned in java dsl using the routeId method
-                if (result.isParsed() && "routeId".equals(result.getNode())) {
+                if (result.isParsed()) {
                     String fileName = fullyQualifiedFileName;
                     if (fileName.startsWith(baseDir)) {
                         fileName = fileName.substring(baseDir.length() + 1);

http://git-wip-us.apache.org/repos/asf/camel/blob/0fe49998/tooling/camel-route-parser/src/main/java/org/apache/camel/parser/helper/CamelJavaParserHelper.java
----------------------------------------------------------------------
diff --git a/tooling/camel-route-parser/src/main/java/org/apache/camel/parser/helper/CamelJavaParserHelper.java b/tooling/camel-route-parser/src/main/java/org/apache/camel/parser/helper/CamelJavaParserHelper.java
index 57c5102..cad1166 100644
--- a/tooling/camel-route-parser/src/main/java/org/apache/camel/parser/helper/CamelJavaParserHelper.java
+++ b/tooling/camel-route-parser/src/main/java/org/apache/camel/parser/helper/CamelJavaParserHelper.java
@@ -19,6 +19,7 @@ package org.apache.camel.parser.helper;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
+import java.util.stream.Collectors;
 
 import org.apache.camel.parser.ParserResult;
 import org.apache.camel.parser.RouteBuilderParser;
@@ -167,16 +168,20 @@ public final class CamelJavaParserHelper {
         return null;
     }
 
+    public static List<ParserResult> parseCamelRouteIds(MethodSource<JavaClassSource> method) {
+        return doParseCamelUris(method, true, false, true, false, true);
+    }
+
     public static List<ParserResult> parseCamelConsumerUris(MethodSource<JavaClassSource> method, boolean strings, boolean fields) {
-        return doParseCamelUris(method, true, false, strings, fields);
+        return doParseCamelUris(method, true, false, strings, fields, false);
     }
 
     public static List<ParserResult> parseCamelProducerUris(MethodSource<JavaClassSource> method, boolean strings, boolean fields) {
-        return doParseCamelUris(method, false, true, strings, fields);
+        return doParseCamelUris(method, false, true, strings, fields, false);
     }
 
     private static List<ParserResult> doParseCamelUris(MethodSource<JavaClassSource> method, boolean consumers, boolean producers,
-                                                       boolean strings, boolean fields) {
+                                                       boolean strings, boolean fields, boolean routeIdsOnly) {
 
         List<ParserResult> answer = new ArrayList<ParserResult>();
 
@@ -191,7 +196,7 @@ public final class CamelJavaParserHelper {
                         Expression exp = es.getExpression();
 
                         List<ParserResult> uris = new ArrayList<ParserResult>();
-                        parseExpression(method.getOrigin(), block, exp, uris, consumers, producers, strings, fields);
+                        parseExpression(method.getOrigin(), block, exp, uris, consumers, producers, strings, fields, routeIdsOnly);
                         if (!uris.isEmpty()) {
                             // reverse the order as we will grab them from last->first
                             Collections.reverse(uris);
@@ -206,24 +211,24 @@ public final class CamelJavaParserHelper {
     }
 
     private static void parseExpression(JavaClassSource clazz, Block block, Expression exp, List<ParserResult> uris,
-                                        boolean consumers, boolean producers, boolean strings, boolean fields) {
+                                        boolean consumers, boolean producers, boolean strings, boolean fields, boolean routeIdsOnly) {
         if (exp == null) {
             return;
         }
         if (exp instanceof MethodInvocation) {
             MethodInvocation mi = (MethodInvocation) exp;
-            doParseCamelUris(clazz, block, mi, uris, consumers, producers, strings, fields);
+            doParseCamelUris(clazz, block, mi, uris, consumers, producers, strings, fields, routeIdsOnly);
             // if the method was called on another method, then recursive
             exp = mi.getExpression();
-            parseExpression(clazz, block, exp, uris, consumers, producers, strings, fields);
+            parseExpression(clazz, block, exp, uris, consumers, producers, strings, fields, routeIdsOnly);
         }
     }
 
     private static void doParseCamelUris(JavaClassSource clazz, Block block, MethodInvocation mi, List<ParserResult> uris,
-                                         boolean consumers, boolean producers, boolean strings, boolean fields) {
+                                         boolean consumers, boolean producers, boolean strings, boolean fields, boolean routeIdsOnly) {
         String name = mi.getName().getIdentifier();
 
-        if (consumers) {
+        if (routeIdsOnly) {
             // include route id for consumers
             if ("routeId".equals(name)) {
                 List args = mi.arguments();
@@ -239,6 +244,11 @@ public final class CamelJavaParserHelper {
                     }
                 }
             }
+            // we only want route ids so return here
+            return;
+        }
+
+        if (consumers) {
             if ("from".equals(name)) {
                 List args = mi.arguments();
                 if (args != null) {

http://git-wip-us.apache.org/repos/asf/camel/blob/0fe49998/tooling/camel-route-parser/src/test/java/org/apache/camel/parser/java/RoasterRouteDuplicateIdBuilderDCamelTestSupportTest.java
----------------------------------------------------------------------
diff --git a/tooling/camel-route-parser/src/test/java/org/apache/camel/parser/java/RoasterRouteDuplicateIdBuilderDCamelTestSupportTest.java b/tooling/camel-route-parser/src/test/java/org/apache/camel/parser/java/RoasterRouteDuplicateIdBuilderDCamelTestSupportTest.java
index 2f37fb8..fc295f7 100644
--- a/tooling/camel-route-parser/src/test/java/org/apache/camel/parser/java/RoasterRouteDuplicateIdBuilderDCamelTestSupportTest.java
+++ b/tooling/camel-route-parser/src/test/java/org/apache/camel/parser/java/RoasterRouteDuplicateIdBuilderDCamelTestSupportTest.java
@@ -18,7 +18,6 @@ package org.apache.camel.parser.java;
 
 import java.io.File;
 import java.util.List;
-import java.util.stream.Collectors;
 
 import org.apache.camel.parser.ParserResult;
 import org.apache.camel.parser.helper.CamelJavaParserHelper;
@@ -43,9 +42,12 @@ public class RoasterRouteDuplicateIdBuilderDCamelTestSupportTest {
         for (ParserResult result : list) {
             LOG.info("Consumer: " + result.getElement());
         }
-        Assert.assertEquals(6, list.size());
+        Assert.assertEquals(3, list.size());
 
-        list = list.stream().filter(r -> r.getNode().equals("routeId")).collect(Collectors.toList());
+        list = CamelJavaParserHelper.parseCamelRouteIds(method);
+        for (ParserResult result : list) {
+            LOG.info("Route id: " + result.getElement());
+        }
         Assert.assertEquals(3, list.size());
         Assert.assertEquals("foo", list.get(0).getElement());
         Assert.assertEquals("bar", list.get(1).getElement());

http://git-wip-us.apache.org/repos/asf/camel/blob/0fe49998/tooling/camel-route-parser/src/test/java/org/apache/camel/parser/java/SimpleProcessorTest.java
----------------------------------------------------------------------
diff --git a/tooling/camel-route-parser/src/test/java/org/apache/camel/parser/java/SimpleProcessorTest.java b/tooling/camel-route-parser/src/test/java/org/apache/camel/parser/java/SimpleProcessorTest.java
index de37bf8..4df4363 100644
--- a/tooling/camel-route-parser/src/test/java/org/apache/camel/parser/java/SimpleProcessorTest.java
+++ b/tooling/camel-route-parser/src/test/java/org/apache/camel/parser/java/SimpleProcessorTest.java
@@ -33,7 +33,7 @@ public class SimpleProcessorTest extends CamelTestSupport {
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                from("direct:start").process(new Processor() {
+                from("direct:start").routeId("myRoute").process(new Processor() {
                     public void process(Exchange exchange) throws Exception {
                         exchange.getOut().setBody("Bye World");
                     }