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 2015/04/18 11:03:44 UTC

[3/3] camel git commit: CAMEL-8656: camel-test - Add option to dump route stats to files.

CAMEL-8656: camel-test - Add option to dump route stats to files.


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

Branch: refs/heads/master
Commit: b6bdbc24159eae45e2e4042c456c8d4a294fdbd9
Parents: f911084
Author: Claus Ibsen <da...@apache.org>
Authored: Sat Apr 18 11:06:29 2015 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Sat Apr 18 11:06:29 2015 +0200

----------------------------------------------------------------------
 .../mbean/RouteCoverageXmlParser.java           | 14 ++++++++++++--
 .../camel/test/junit4/CamelTestSupport.java     | 20 ++++++++++----------
 .../apache/camel/test/patterns/FilterTest.java  |  2 +-
 3 files changed, 23 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/b6bdbc24/camel-core/src/main/java/org/apache/camel/management/mbean/RouteCoverageXmlParser.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/mbean/RouteCoverageXmlParser.java b/camel-core/src/main/java/org/apache/camel/management/mbean/RouteCoverageXmlParser.java
index 5dc9702..fa8d389 100644
--- a/camel-core/src/main/java/org/apache/camel/management/mbean/RouteCoverageXmlParser.java
+++ b/camel-core/src/main/java/org/apache/camel/management/mbean/RouteCoverageXmlParser.java
@@ -36,14 +36,22 @@ import org.xml.sax.helpers.DefaultHandler;
 
 /**
  * An XML parser that uses SAX to enrich route stats in the route dump.
+ * <p/>
+ * The coverage details:
+ * <ul>
+ *     <li>exchangesTotal - Total number of exchanges</li>
+ *     <li>totalProcessingTime - Total processing time in millis</li>
+ * </ul>
+ * Is included as attributes on the route nodes.
  */
 public final class RouteCoverageXmlParser {
 
     /**
      * Parses the XML.
      *
-     * @param is the XML content as an input stream
-     * @return the DOM model
+     * @param camelContext the CamelContext
+     * @param is           the XML content as an input stream
+     * @return the DOM model of the routes with coverage information stored as attributes
      * @throws Exception is thrown if error parsing
      */
     public static Document parseXml(final CamelContext camelContext, final InputStream is) throws Exception {
@@ -86,6 +94,8 @@ public final class RouteCoverageXmlParser {
                                 long totalTime = route.getTotalProcessingTime();
                                 el.setAttribute("totalProcessingTime", "" + totalTime);
                             }
+                        } else if ("from".equals(qName)) {
+                            // TODO: include the stats from the route mbean as that would be the same
                         } else {
                             ManagedProcessorMBean processor = camelContext.getManagedProcessor(id, ManagedProcessorMBean.class);
                             if (processor != null) {

http://git-wip-us.apache.org/repos/asf/camel/blob/b6bdbc24/components/camel-test/src/main/java/org/apache/camel/test/junit4/CamelTestSupport.java
----------------------------------------------------------------------
diff --git a/components/camel-test/src/main/java/org/apache/camel/test/junit4/CamelTestSupport.java b/components/camel-test/src/main/java/org/apache/camel/test/junit4/CamelTestSupport.java
index 9154ac9..b6931de 100644
--- a/components/camel-test/src/main/java/org/apache/camel/test/junit4/CamelTestSupport.java
+++ b/components/camel-test/src/main/java/org/apache/camel/test/junit4/CamelTestSupport.java
@@ -102,14 +102,14 @@ public abstract class CamelTestSupport extends TestSupport {
     }
 
     /**
-     * Whether to dump route utilization stats at the end of the test.
+     * Whether to dump route coverage stats at the end of the test.
      * <p/>
      * This allows tooling or manual inspection of the stats, so you can generate a route trace diagram of which EIPs
      * have been in use and which have not. Similar concepts as a code coverage report.
      *
-     * @return <tt>true</tt> to write route stats in an xml file in the <tt>target</tt> directory after the test has finished.
+     * @return <tt>true</tt> to write route coverage status in an xml file in the <tt>target/camel-route-coverage</tt> directory after the test has finished.
      */
-    public boolean isDumpRouteStats() {
+    public boolean isDumpRouteCoverage() {
         return false;
     }
 
@@ -257,8 +257,8 @@ public abstract class CamelTestSupport extends TestSupport {
 
     private void doSetUp() throws Exception {
         log.debug("setUp test");
-        // jmx is enabled if we have configured to use it, or if dump route stats is enabled (it requires JMX)
-        boolean jmx = useJmx() || isDumpRouteStats();
+        // jmx is enabled if we have configured to use it, or if dump route coverage is enabled (it requires JMX)
+        boolean jmx = useJmx() || isDumpRouteCoverage();
         if (jmx) {
             enableJMX();
         } else {
@@ -362,21 +362,21 @@ public abstract class CamelTestSupport extends TestSupport {
         log.info("Took: " + TimeUtils.printDuration(time) + " (" + time + " millis)");
 
         // if we should dump route stats, then write that to a file
-        if (isDumpRouteStats()) {
+        if (isDumpRouteCoverage()) {
             String className = this.getClass().getSimpleName();
-            String dir = "target/camel-route-stats";
+            String dir = "target/camel-route-coverage";
             String name = className + "-" + getTestMethodName() + ".xml";
 
             ManagedCamelContextMBean managedCamelContext = context.getManagedCamelContext();
             if (managedCamelContext == null) {
-                log.warn("Cannot dump route stats to file as JMX is not enabled. Override useJmx() method to enable JMX in the unit test classes.");
+                log.warn("Cannot dump route coverage to file as JMX is not enabled. Override useJmx() method to enable JMX in the unit test classes.");
             } else {
-                String xml = managedCamelContext.dumpRoutesStatsAsXml(false, true);
+                String xml = managedCamelContext.dumpRoutesCoverageAsXml();
                 File file = new File(dir);
                 // ensure dir exists
                 file.mkdirs();
                 file = new File(dir, name);
-                log.info("Dumping route stats to file: " + file);
+                log.info("Dumping route coverage to file: " + file);
                 InputStream is = new ByteArrayInputStream(xml.getBytes());
                 OutputStream os = new FileOutputStream(file, false);
                 IOHelper.copyAndCloseInput(is, os);

http://git-wip-us.apache.org/repos/asf/camel/blob/b6bdbc24/components/camel-test/src/test/java/org/apache/camel/test/patterns/FilterTest.java
----------------------------------------------------------------------
diff --git a/components/camel-test/src/test/java/org/apache/camel/test/patterns/FilterTest.java b/components/camel-test/src/test/java/org/apache/camel/test/patterns/FilterTest.java
index ce56986..65ef132 100644
--- a/components/camel-test/src/test/java/org/apache/camel/test/patterns/FilterTest.java
+++ b/components/camel-test/src/test/java/org/apache/camel/test/patterns/FilterTest.java
@@ -39,7 +39,7 @@ public class FilterTest extends CamelTestSupport {
     protected ProducerTemplate template;
 
     @Override
-    public boolean isDumpRouteStats() {
+    public boolean isDumpRouteCoverage() {
         return true;
     }