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);
     }
 

Reply via email to