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/09 07:46:59 UTC
camel git commit: Camel route coverage maven plugin
Repository: camel
Updated Branches:
refs/heads/parser2 32e0a7162 -> 16d66ddae
Camel route coverage maven plugin
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/16d66dda
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/16d66dda
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/16d66dda
Branch: refs/heads/parser2
Commit: 16d66ddaedeb338aeabf9ba95d880448eec90d82
Parents: 32e0a71
Author: Claus Ibsen <da...@apache.org>
Authored: Mon Oct 9 09:46:48 2017 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Mon Oct 9 09:46:48 2017 +0200
----------------------------------------------------------------------
.../java/sample/camel/FooApplicationTest.java | 4 ++--
.../parser/RouteBuilderNodeDetailsParser.java | 24 --------------------
.../apache/camel/parser/RouteBuilderParser.java | 2 +-
.../helper/CamelJavaTreeParserHelper.java | 23 +++++++++++--------
.../camel/parser/model/CamelNodeDetails.java | 22 ++++++++++++++++++
.../camel/parser/java/RoasterJavaDslTest.java | 2 ++
.../java/RoasterJavaDslTwoRoutesTest.java | 4 ++++
.../apache/camel/maven/RouteCoverageMojo.java | 10 ++++++--
.../camel/maven/model/RouteCoverageNode.java | 19 ++++++++++++++++
9 files changed, 72 insertions(+), 38 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/16d66dda/examples/camel-example-spring-boot/src/test/java/sample/camel/FooApplicationTest.java
----------------------------------------------------------------------
diff --git a/examples/camel-example-spring-boot/src/test/java/sample/camel/FooApplicationTest.java b/examples/camel-example-spring-boot/src/test/java/sample/camel/FooApplicationTest.java
index e8f5897..45f2076 100644
--- a/examples/camel-example-spring-boot/src/test/java/sample/camel/FooApplicationTest.java
+++ b/examples/camel-example-spring-boot/src/test/java/sample/camel/FooApplicationTest.java
@@ -32,9 +32,9 @@ import static org.junit.Assert.assertTrue;
@RunWith(CamelSpringBootRunner.class)
@SpringBootTest(classes = SampleCamelApplication.class,
- properties = "greeting = Hell foo")
+ properties = "greeting = Hello foo")
@EnableRouteCoverage
-@Ignore // enable me to run this test as well so we can cover testing the route completely
+//@Ignore // enable me to run this test as well so we can cover testing the route completely
public class FooApplicationTest {
@Autowired
http://git-wip-us.apache.org/repos/asf/camel/blob/16d66dda/tooling/camel-route-parser/src/main/java/org/apache/camel/parser/RouteBuilderNodeDetailsParser.java
----------------------------------------------------------------------
diff --git a/tooling/camel-route-parser/src/main/java/org/apache/camel/parser/RouteBuilderNodeDetailsParser.java b/tooling/camel-route-parser/src/main/java/org/apache/camel/parser/RouteBuilderNodeDetailsParser.java
deleted file mode 100644
index cb8591b..0000000
--- a/tooling/camel-route-parser/src/main/java/org/apache/camel/parser/RouteBuilderNodeDetailsParser.java
+++ /dev/null
@@ -1,24 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- * <p>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p>
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.camel.parser;
-
-/**
- * TODO: Merge this to {@link RouteBuilderParser}
- */
-public class RouteBuilderNodeDetailsParser {
-
-}
http://git-wip-us.apache.org/repos/asf/camel/blob/16d66dda/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 f525a56..96e54b2 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
@@ -59,7 +59,7 @@ public final class RouteBuilderParser {
* @return a list of route model (tree) of each discovered route
*/
public static List<CamelNodeDetails> parseRouteBuilderTree(JavaClassSource clazz, String baseDir, String fullyQualifiedFileName,
- boolean includeInlinedRouteBuilders) {
+ boolean includeInlinedRouteBuilders) {
List<MethodSource<JavaClassSource>> methods = new ArrayList<>();
MethodSource<JavaClassSource> method = CamelJavaParserHelper.findConfigureMethod(clazz);
http://git-wip-us.apache.org/repos/asf/camel/blob/16d66dda/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 2dd06b3..ee4e9ab 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
@@ -64,18 +64,18 @@ import org.jboss.forge.roaster.model.source.MethodSource;
*/
public final class CamelJavaTreeParserHelper {
- private CamelCatalog camelCatalog = new DefaultCamelCatalog(true);
+ private final CamelCatalog camelCatalog = new DefaultCamelCatalog(true);
public List<CamelNodeDetails> parseCamelRouteTree(JavaClassSource clazz, String baseDir, String fullyQualifiedFileName,
- MethodSource<JavaClassSource> method) {
+ MethodSource<JavaClassSource> configureMethod) {
// find any from which is the start of the route
CamelNodeDetailsFactory nodeFactory = CamelNodeDetailsFactory.newInstance();
CamelNodeDetails route = nodeFactory.newNode(null, "route");
- if (method != null) {
- MethodDeclaration md = (MethodDeclaration) method.getInternal();
+ if (configureMethod != null) {
+ MethodDeclaration md = (MethodDeclaration) configureMethod.getInternal();
Block block = md.getBody();
if (block != null) {
for (Object statement : md.getBody().statements()) {
@@ -83,7 +83,7 @@ public final class CamelJavaTreeParserHelper {
if (statement instanceof ExpressionStatement) {
ExpressionStatement es = (ExpressionStatement) statement;
Expression exp = es.getExpression();
- parseExpression(nodeFactory, fullyQualifiedFileName, clazz, block, exp, route);
+ parseExpression(nodeFactory, fullyQualifiedFileName, clazz, configureMethod, block, exp, route);
}
}
}
@@ -183,21 +183,23 @@ public final class CamelJavaTreeParserHelper {
}
private void parseExpression(CamelNodeDetailsFactory nodeFactory, String fullyQualifiedFileName,
- JavaClassSource clazz, Block block, Expression exp, CamelNodeDetails node) {
+ JavaClassSource clazz, MethodSource<JavaClassSource> configureMethod, Block block,
+ Expression exp, CamelNodeDetails node) {
if (exp == null) {
return;
}
if (exp instanceof MethodInvocation) {
MethodInvocation mi = (MethodInvocation) exp;
- node = doParseCamelModels(nodeFactory, fullyQualifiedFileName, clazz, block, mi, node);
+ node = doParseCamelModels(nodeFactory, fullyQualifiedFileName, clazz, configureMethod, block, mi, node);
// if the method was called on another method, then recursive
exp = mi.getExpression();
- parseExpression(nodeFactory, fullyQualifiedFileName, clazz, block, exp, node);
+ parseExpression(nodeFactory, fullyQualifiedFileName, clazz, configureMethod, block, exp, node);
}
}
private CamelNodeDetails doParseCamelModels(CamelNodeDetailsFactory nodeFactory, String fullyQualifiedFileName,
- JavaClassSource clazz, Block block, MethodInvocation mi, CamelNodeDetails node) {
+ JavaClassSource clazz, MethodSource<JavaClassSource> configureMethod, Block block,
+ MethodInvocation mi, CamelNodeDetails node) {
String name = mi.getName().getIdentifier();
// special for Java DSL having some endXXX
@@ -216,6 +218,9 @@ public final class CamelJavaTreeParserHelper {
}
newNode.setFileName(fullyQualifiedFileName);
+ newNode.setClassName(clazz.getQualifiedName());
+ newNode.setMethodName(configureMethod.getName());
+
if (isRouteId) {
// grab the route id
List args = mi.arguments();
http://git-wip-us.apache.org/repos/asf/camel/blob/16d66dda/tooling/camel-route-parser/src/main/java/org/apache/camel/parser/model/CamelNodeDetails.java
----------------------------------------------------------------------
diff --git a/tooling/camel-route-parser/src/main/java/org/apache/camel/parser/model/CamelNodeDetails.java b/tooling/camel-route-parser/src/main/java/org/apache/camel/parser/model/CamelNodeDetails.java
index d058b5b..bd2a99c 100644
--- a/tooling/camel-route-parser/src/main/java/org/apache/camel/parser/model/CamelNodeDetails.java
+++ b/tooling/camel-route-parser/src/main/java/org/apache/camel/parser/model/CamelNodeDetails.java
@@ -26,6 +26,10 @@ public class CamelNodeDetails {
private String lineNumber;
private String lineNumberEnd;
+ // java source code details
+ private String className;
+ private String methodName;
+
// camel node details
private final CamelNodeDetails parent;
private final String name;
@@ -41,6 +45,8 @@ public class CamelNodeDetails {
this.fileName = copy.getFileName();
this.lineNumber = copy.getLineNumber();
this.lineNumberEnd = copy.getLineNumberEnd();
+ this.className = copy.getClassName();
+ this.methodName = copy.getMethodName();
}
public CamelNodeDetails(CamelNodeDetails parent, String name, int order) {
@@ -112,6 +118,22 @@ public class CamelNodeDetails {
this.lineNumberEnd = lineNumberEnd;
}
+ public String getClassName() {
+ return className;
+ }
+
+ public void setClassName(String className) {
+ this.className = className;
+ }
+
+ public String getMethodName() {
+ return methodName;
+ }
+
+ public void setMethodName(String methodName) {
+ this.methodName = methodName;
+ }
+
public String toString() {
return name;
}
http://git-wip-us.apache.org/repos/asf/camel/blob/16d66dda/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 24f3c81..dc6c63b 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
@@ -47,6 +47,8 @@ public class RoasterJavaDslTest extends CamelTestSupport {
CamelNodeDetails details = list.get(0);
assertEquals("src/test/java/org/apache/camel/parser/java/MyJavaDslRouteBuilder.java", details.getFileName());
assertEquals("bar", details.getRouteId());
+ assertEquals("configure", details.getMethodName());
+ assertEquals("org.apache.camel.parser.java.MyJavaDslRouteBuilder", details.getClassName());
String tree = details.dump(0);
LOG.info("\n" + tree);
http://git-wip-us.apache.org/repos/asf/camel/blob/16d66dda/tooling/camel-route-parser/src/test/java/org/apache/camel/parser/java/RoasterJavaDslTwoRoutesTest.java
----------------------------------------------------------------------
diff --git a/tooling/camel-route-parser/src/test/java/org/apache/camel/parser/java/RoasterJavaDslTwoRoutesTest.java b/tooling/camel-route-parser/src/test/java/org/apache/camel/parser/java/RoasterJavaDslTwoRoutesTest.java
index 23ccef6..b1b5a17 100644
--- a/tooling/camel-route-parser/src/test/java/org/apache/camel/parser/java/RoasterJavaDslTwoRoutesTest.java
+++ b/tooling/camel-route-parser/src/test/java/org/apache/camel/parser/java/RoasterJavaDslTwoRoutesTest.java
@@ -51,7 +51,11 @@ public class RoasterJavaDslTwoRoutesTest extends CamelTestSupport {
assertEquals("src/test/java/org/apache/camel/parser/java/TwoRoutesRouteBuilder.java", details2.getFileName());
assertEquals("foo", details.getRouteId());
+ assertEquals("org.apache.camel.parser.java.TwoRoutesRouteBuilder", details.getClassName());
+ assertEquals("configure", details.getMethodName());
assertEquals("bar", details2.getRouteId());
+ assertEquals("configure", details2.getMethodName());
+ assertEquals("org.apache.camel.parser.java.TwoRoutesRouteBuilder", details2.getClassName());
String tree = details.dump(0);
LOG.info("\n" + tree);
http://git-wip-us.apache.org/repos/asf/camel/blob/16d66dda/tooling/maven/camel-maven-plugin/src/main/java/org/apache/camel/maven/RouteCoverageMojo.java
----------------------------------------------------------------------
diff --git a/tooling/maven/camel-maven-plugin/src/main/java/org/apache/camel/maven/RouteCoverageMojo.java b/tooling/maven/camel-maven-plugin/src/main/java/org/apache/camel/maven/RouteCoverageMojo.java
index 63688fd..21b28bf 100644
--- a/tooling/maven/camel-maven-plugin/src/main/java/org/apache/camel/maven/RouteCoverageMojo.java
+++ b/tooling/maven/camel-maven-plugin/src/main/java/org/apache/camel/maven/RouteCoverageMojo.java
@@ -206,8 +206,12 @@ public class RouteCoverageMojo extends AbstractExecMojo {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
PrintStream sw = new PrintStream(bos);
- sw.println("File: " + fileName);
- sw.println("Route: " + routeId);
+ if (model.get(0).getClassName() != null) {
+ sw.println("Class:\t" + model.get(0).getClassName());
+ } else {
+ sw.println("File:\t" + fileName);
+ }
+ sw.println("RouteId:\t" + routeId);
sw.println();
sw.println(String.format("%8s %8s %s", "Line #", "Count", "Route"));
sw.println(String.format("%8s %8s %s", "------", "-----", "-----"));
@@ -249,6 +253,8 @@ public class RouteCoverageMojo extends AbstractExecMojo {
data.setName(node.getName());
data.setLineNumber(Integer.valueOf(node.getLineNumber()));
data.setLevel(level.get());
+ data.setClassName(node.getClassName());
+ data.setMethodName(node.getMethodName());
// add data
answer.add(data);
http://git-wip-us.apache.org/repos/asf/camel/blob/16d66dda/tooling/maven/camel-maven-plugin/src/main/java/org/apache/camel/maven/model/RouteCoverageNode.java
----------------------------------------------------------------------
diff --git a/tooling/maven/camel-maven-plugin/src/main/java/org/apache/camel/maven/model/RouteCoverageNode.java b/tooling/maven/camel-maven-plugin/src/main/java/org/apache/camel/maven/model/RouteCoverageNode.java
index 0f711b2..cb6aba6 100644
--- a/tooling/maven/camel-maven-plugin/src/main/java/org/apache/camel/maven/model/RouteCoverageNode.java
+++ b/tooling/maven/camel-maven-plugin/src/main/java/org/apache/camel/maven/model/RouteCoverageNode.java
@@ -18,11 +18,30 @@ package org.apache.camel.maven.model;
public final class RouteCoverageNode {
+ private String className;
+ private String methodName;
+
private String name;
private int lineNumber;
private int count;
private int level;
+ public String getClassName() {
+ return className;
+ }
+
+ public void setClassName(String className) {
+ this.className = className;
+ }
+
+ public String getMethodName() {
+ return methodName;
+ }
+
+ public void setMethodName(String methodName) {
+ this.methodName = methodName;
+ }
+
public String getName() {
return name;
}