Repository: camel Updated Branches: refs/heads/master ce6a9532a -> bfffd714a
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/553788bb Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/553788bb Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/553788bb Branch: refs/heads/master Commit: 553788bba4ee7a5513d7c43f73573169a6411be5 Parents: ce6a953 Author: Claus Ibsen <davscl...@apache.org> Authored: Sat Oct 14 14:44:55 2017 +0200 Committer: Claus Ibsen <davscl...@apache.org> Committed: Sat Oct 14 14:44:55 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/553788bb/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 96e54b2..de1d51f 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 @@ -323,10 +323,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/553788bb/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/553788bb/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/553788bb/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"); }