This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
commit 3fa3008a8fa57d235b96f19359ffc7228399b228 Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Tue Sep 4 09:48:24 2018 +0200 CAMEL-12598: Camel maven tooling validate to detect direct/send endpoints missing names, eg sending to none existing seda queue which has no consumers etc. --- .../java/org/apache/camel/parser/java/MySedaRouteBuilder.java | 2 +- .../camel/parser/java/RoasterMySedaRouteBuilderTest.java | 4 ++++ .../src/main/java/org/apache/camel/maven/ValidateMojo.java | 11 +++++++---- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/tooling/camel-route-parser/src/test/java/org/apache/camel/parser/java/MySedaRouteBuilder.java b/tooling/camel-route-parser/src/test/java/org/apache/camel/parser/java/MySedaRouteBuilder.java index f43fa34..37b7cbf 100644 --- a/tooling/camel-route-parser/src/test/java/org/apache/camel/parser/java/MySedaRouteBuilder.java +++ b/tooling/camel-route-parser/src/test/java/org/apache/camel/parser/java/MySedaRouteBuilder.java @@ -25,7 +25,7 @@ public class MySedaRouteBuilder extends RouteBuilder { from("timer:hello?period={{timer.period}}").routeId("hello").routeGroup("hello-group") .transform().method("myBean", "saySomething") .filter(simple("${body} contains 'foo'")) - .to("seda:foo") + .to("seda:bar") .end() .to("stream:out"); diff --git a/tooling/camel-route-parser/src/test/java/org/apache/camel/parser/java/RoasterMySedaRouteBuilderTest.java b/tooling/camel-route-parser/src/test/java/org/apache/camel/parser/java/RoasterMySedaRouteBuilderTest.java index 80376f4..e659a1e 100644 --- a/tooling/camel-route-parser/src/test/java/org/apache/camel/parser/java/RoasterMySedaRouteBuilderTest.java +++ b/tooling/camel-route-parser/src/test/java/org/apache/camel/parser/java/RoasterMySedaRouteBuilderTest.java @@ -46,6 +46,10 @@ public class RoasterMySedaRouteBuilderTest { Assert.assertEquals("seda:foo", details.get(1).getEndpointUri()); Assert.assertTrue(details.get(1).isConsumerOnly()); Assert.assertFalse(details.get(1).isProducerOnly()); + Assert.assertEquals("35", details.get(2).getLineNumber()); + Assert.assertEquals("seda:bar", details.get(2).getEndpointUri()); + Assert.assertTrue(details.get(2).isConsumerOnly()); + Assert.assertFalse(details.get(2).isProducerOnly()); } } diff --git a/tooling/maven/camel-maven-plugin/src/main/java/org/apache/camel/maven/ValidateMojo.java b/tooling/maven/camel-maven-plugin/src/main/java/org/apache/camel/maven/ValidateMojo.java index 79e92e1..35782a9 100644 --- a/tooling/maven/camel-maven-plugin/src/main/java/org/apache/camel/maven/ValidateMojo.java +++ b/tooling/maven/camel-maven-plugin/src/main/java/org/apache/camel/maven/ValidateMojo.java @@ -38,6 +38,7 @@ import org.apache.camel.parser.XmlRouteParser; import org.apache.camel.parser.model.CamelEndpointDetails; import org.apache.camel.parser.model.CamelRouteDetails; import org.apache.camel.parser.model.CamelSimpleExpressionDetails; +import org.apache.camel.util.ObjectHelper; import org.apache.camel.util.StringHelper; import org.apache.maven.model.Dependency; import org.apache.maven.model.Resource; @@ -512,7 +513,7 @@ public class ValidateMojo extends AbstractExecMojo { // find all pairs, eg producers that has a consumer (no need to check for opposite) for (CamelEndpointDetails p : producers) { - boolean any = consumers.stream().findAny().filter(c -> matchEndpointPath(p.getEndpointUri(), c.getEndpointUri())).isPresent(); + boolean any = consumers.stream().anyMatch(c -> matchEndpointPath(p.getEndpointUri(), c.getEndpointUri())); if (any) { pairs++; } @@ -529,8 +530,8 @@ public class ValidateMojo extends AbstractExecMojo { // are there any producers that do not have a consumer pair for (CamelEndpointDetails detail : producers) { - boolean any = consumers.stream().findAny().filter(c -> matchEndpointPath(detail.getEndpointUri(), c.getEndpointUri())).isPresent(); - if (!any) { + boolean none = consumers.stream().noneMatch(c -> matchEndpointPath(detail.getEndpointUri(), c.getEndpointUri())); + if (none) { errors++; StringBuilder sb = new StringBuilder(); @@ -604,12 +605,14 @@ public class ValidateMojo extends AbstractExecMojo { String uri = detail.getEndpointUri(); String p = uri.contains("?") ? StringHelper.before(uri, "?") : uri; String path = StringHelper.after(p, ":"); - return path + "\t" + "Non existing " + detail.getEndpointComponentName() + " queue name"; + return path + "\t" + "Sending to non existing " + detail.getEndpointComponentName() + " queue name"; } private static boolean matchEndpointPath(String uri, String uri2) { String p = uri.contains("?") ? StringHelper.before(uri, "?") : uri; String p2 = uri2.contains("?") ? StringHelper.before(uri2, "?") : uri2; + p = p.trim(); + p2 = p2.trim(); return p.equals(p2); }