Camel commands show more details

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

Branch: refs/heads/master
Commit: 75ef7eb214def5f98e003fe48ca405d468fee454
Parents: f78ae35
Author: Claus Ibsen <davscl...@apache.org>
Authored: Mon Jul 27 19:04:37 2015 +0200
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Tue Jul 28 09:12:11 2015 +0200

----------------------------------------------------------------------
 .../camel/commands/ContextListCommand.java      | 38 +++++++++++++++++---
 .../commands/EndpointStatisticCommand.java      |  2 +-
 .../jolokia/DefaultJolokiaCamelController.java  |  5 ++-
 .../commands/internal/CamelControllerImpl.java  |  9 +++++
 4 files changed, 47 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/75ef7eb2/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/ContextListCommand.java
----------------------------------------------------------------------
diff --git 
a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/ContextListCommand.java
 
b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/ContextListCommand.java
index 4ce3e37..41a4ec1 100644
--- 
a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/ContextListCommand.java
+++ 
b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/ContextListCommand.java
@@ -28,6 +28,9 @@ public class ContextListCommand extends AbstractCamelCommand {
 
     private static final String CONTEXT_COLUMN_LABEL = "Context";
     private static final String STATUS_COLUMN_LABEL = "Status";
+    private static final String TOTAL_COLUMN_LABEL = "Total #";
+    private static final String FAILED_COLUMN_LABEL = "Failed #";
+    private static final String INFLIGHT_COLUMN_LABEL = "Inflight #";
     private static final String UPTIME_COLUMN_LABEL = "Uptime";
     private static final int DEFAULT_FORMAT_BUFFER_LENGTH = 24;
     private static final String DEFAULT_FIELD_PREAMBLE = " ";
@@ -47,10 +50,11 @@ public class ContextListCommand extends 
AbstractCamelCommand {
         final String rowFormat = buildFormatString(columnWidths, false);
 
         if (camelContexts.size() > 0) {
-            out.println(String.format(headerFormat, CONTEXT_COLUMN_LABEL, 
STATUS_COLUMN_LABEL, UPTIME_COLUMN_LABEL));
-            out.println(String.format(headerFormat, "-------", "------", 
"------"));
+            out.println(String.format(headerFormat, CONTEXT_COLUMN_LABEL, 
STATUS_COLUMN_LABEL, TOTAL_COLUMN_LABEL, FAILED_COLUMN_LABEL, 
INFLIGHT_COLUMN_LABEL, UPTIME_COLUMN_LABEL));
+            out.println(String.format(headerFormat, "-------", "------", 
"-------", "--------", "----------", "------"));
             for (Map<String, String> row : camelContexts) {
-                out.println(String.format(rowFormat, row.get("name"), 
row.get("state"), row.get("uptime")));
+                out.println(String.format(rowFormat, row.get("name"), 
row.get("state"), row.get("exchangesTotal"),
+                        row.get("exchangesFailed"), 
row.get("exchangesInflight"), row.get("uptime")));
             }
         }
 
@@ -63,6 +67,9 @@ public class ContextListCommand extends AbstractCamelCommand {
         } else {
             int maxNameLen = 0;
             int maxStatusLen = 0;
+            int maxTotalLen = 0;
+            int maxFailedLen = 0;
+            int maxInflightLen = 0;
             int maxUptimeLen = 0;
 
             for (Map<String, String> row : camelContexts) {
@@ -72,13 +79,25 @@ public class ContextListCommand extends 
AbstractCamelCommand {
                 final String status = row.get("state");
                 maxStatusLen = java.lang.Math.max(maxStatusLen, status == null 
? 0 : status.length());
 
+                final String total = row.get("exchangesTotal");
+                maxTotalLen = java.lang.Math.max(maxTotalLen, total == null ? 
0 : total.length());
+
+                final String failed = row.get("exchangesFailed");
+                maxFailedLen = java.lang.Math.max(maxFailedLen, failed == null 
? 0 : failed.length());
+
+                final String inflight = row.get("exchangesInflight");
+                maxInflightLen = java.lang.Math.max(maxInflightLen, inflight 
== null ? 0 : inflight.length());
+
                 final String uptime = row.get("uptime");
                 maxUptimeLen = java.lang.Math.max(maxUptimeLen, uptime == null 
? 0 : uptime.length());
             }
 
-            final Map<String, Integer> retval = new Hashtable<String, 
Integer>(3);
+            final Map<String, Integer> retval = new Hashtable<String, 
Integer>();
             retval.put(CONTEXT_COLUMN_LABEL, maxNameLen);
             retval.put(STATUS_COLUMN_LABEL, maxStatusLen);
+            retval.put(TOTAL_COLUMN_LABEL, maxTotalLen);
+            retval.put(FAILED_COLUMN_LABEL, maxFailedLen);
+            retval.put(INFLIGHT_COLUMN_LABEL, maxInflightLen);
             retval.put(UPTIME_COLUMN_LABEL, maxUptimeLen);
 
             return retval;
@@ -101,14 +120,23 @@ public class ContextListCommand extends 
AbstractCamelCommand {
 
         int contextLen = 
java.lang.Math.min(columnWidths.get(CONTEXT_COLUMN_LABEL) + 
columnWidthIncrement, MAX_COLUMN_WIDTH);
         int statusLen = 
java.lang.Math.min(columnWidths.get(STATUS_COLUMN_LABEL) + 
columnWidthIncrement, MAX_COLUMN_WIDTH);
+        int totalLen = java.lang.Math.min(columnWidths.get(TOTAL_COLUMN_LABEL) 
+ columnWidthIncrement, MAX_COLUMN_WIDTH);
+        int failedlLen = 
java.lang.Math.min(columnWidths.get(FAILED_COLUMN_LABEL) + 
columnWidthIncrement, MAX_COLUMN_WIDTH);
+        int inflightLen = 
java.lang.Math.min(columnWidths.get(INFLIGHT_COLUMN_LABEL) + 
columnWidthIncrement, MAX_COLUMN_WIDTH);
         int uptimeLen = 
java.lang.Math.min(columnWidths.get(UPTIME_COLUMN_LABEL) + 
columnWidthIncrement, MAX_COLUMN_WIDTH);
         contextLen = Math.max(MIN_COLUMN_WIDTH, contextLen);
         statusLen = Math.max(MIN_COLUMN_WIDTH, statusLen);
-        // last row does not have min width
+        totalLen = Math.max(MIN_COLUMN_WIDTH, totalLen);
+        failedlLen = Math.max(MIN_COLUMN_WIDTH, failedlLen);
+        inflightLen = Math.max(MIN_COLUMN_WIDTH, inflightLen);
+        uptimeLen = Math.max(MIN_COLUMN_WIDTH, uptimeLen);
 
         final StringBuilder retval = new 
StringBuilder(DEFAULT_FORMAT_BUFFER_LENGTH);
         
retval.append(fieldPreamble).append("%-").append(contextLen).append('.').append(contextLen).append('s').append(fieldPostamble).append('
 ');
         
retval.append(fieldPreamble).append("%-").append(statusLen).append('.').append(statusLen).append('s').append(fieldPostamble).append('
 ');
+        
retval.append(fieldPreamble).append("%").append(totalLen).append('.').append(totalLen).append('s').append(fieldPostamble).append('
 ');
+        
retval.append(fieldPreamble).append("%").append(failedlLen).append('.').append(failedlLen).append('s').append(fieldPostamble).append('
 ');
+        
retval.append(fieldPreamble).append("%").append(inflightLen).append('.').append(inflightLen).append('s').append(fieldPostamble).append('
 ');
         
retval.append(fieldPreamble).append("%-").append(uptimeLen).append('.').append(uptimeLen).append('s').append(fieldPostamble).append('
 ');
 
         return retval.toString();

http://git-wip-us.apache.org/repos/asf/camel/blob/75ef7eb2/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/EndpointStatisticCommand.java
----------------------------------------------------------------------
diff --git 
a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/EndpointStatisticCommand.java
 
b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/EndpointStatisticCommand.java
index fb76655..f9427251 100644
--- 
a/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/EndpointStatisticCommand.java
+++ 
b/platforms/commands/commands-core/src/main/java/org/apache/camel/commands/EndpointStatisticCommand.java
@@ -194,7 +194,7 @@ public class EndpointStatisticCommand extends 
AbstractContextCommand {
         staticLen = Math.max(MIN_COLUMN_WIDTH, staticLen);
 
         int dynamicLen = Math.min(columnWidths.get(DYNAMIC_COLUMN_LABEL) + 
columnWidthIncrement, getMaxColumnWidth());
-        dynamicLen = Math.max(MIN_COLUMN_WIDTH, staticLen);
+        dynamicLen = Math.max(MIN_COLUMN_WIDTH, dynamicLen);
 
         // last row does not have min width
 

http://git-wip-us.apache.org/repos/asf/camel/blob/75ef7eb2/platforms/commands/commands-jolokia/src/main/java/org/apache/camel/commands/jolokia/DefaultJolokiaCamelController.java
----------------------------------------------------------------------
diff --git 
a/platforms/commands/commands-jolokia/src/main/java/org/apache/camel/commands/jolokia/DefaultJolokiaCamelController.java
 
b/platforms/commands/commands-jolokia/src/main/java/org/apache/camel/commands/jolokia/DefaultJolokiaCamelController.java
index 454fbb0..bcf37e2 100644
--- 
a/platforms/commands/commands-jolokia/src/main/java/org/apache/camel/commands/jolokia/DefaultJolokiaCamelController.java
+++ 
b/platforms/commands/commands-jolokia/src/main/java/org/apache/camel/commands/jolokia/DefaultJolokiaCamelController.java
@@ -192,7 +192,7 @@ public class DefaultJolokiaCamelController extends 
AbstractCamelController imple
 
         List<J4pReadRequest> list = new ArrayList<J4pReadRequest>();
         for (ObjectName on : sr.getObjectNames()) {
-            list.add(new J4pReadRequest(on, "CamelId", "State", "Uptime"));
+            list.add(new J4pReadRequest(on, "CamelId", "State", "Uptime", 
"ExchangesTotal", "ExchangesInflight", "ExchangesFailed"));
         }
 
         List<J4pReadResponse> lrr = jolokia.execute(list);
@@ -201,6 +201,9 @@ public class DefaultJolokiaCamelController extends 
AbstractCamelController imple
             row.put("name", rr.getValue("CamelId").toString());
             row.put("state", rr.getValue("State").toString());
             row.put("uptime", rr.getValue("Uptime").toString());
+            row.put("exchangesTotal", 
rr.getValue("ExchangesTotal").toString());
+            row.put("exchangesInflight", 
rr.getValue("ExchangesInflight").toString());
+            row.put("exchangesFailed", 
rr.getValue("ExchangesFailed").toString());
             answer.add(row);
         }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/75ef7eb2/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/internal/CamelControllerImpl.java
----------------------------------------------------------------------
diff --git 
a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/internal/CamelControllerImpl.java
 
b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/internal/CamelControllerImpl.java
index b026ff0..25d9ae9 100644
--- 
a/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/internal/CamelControllerImpl.java
+++ 
b/platforms/karaf/commands/src/main/java/org/apache/camel/karaf/commands/internal/CamelControllerImpl.java
@@ -83,6 +83,15 @@ public class CamelControllerImpl extends 
AbstractLocalCamelController {
             row.put("name", camelContext.getName());
             row.put("state", camelContext.getStatus().name());
             row.put("uptime", camelContext.getUptime());
+            if (camelContext.getManagedCamelContext() != null) {
+                row.put("exchangesTotal", "" + 
camelContext.getManagedCamelContext().getExchangesTotal());
+                row.put("exchangesInflight", "" + 
camelContext.getManagedCamelContext().getExchangesInflight());
+                row.put("exchangesFailed", "" + 
camelContext.getManagedCamelContext().getExchangesFailed());
+            } else {
+                row.put("exchangesTotal", "0");
+                row.put("exchangesInflight", "0");
+                row.put("exchangesFailed", "0");
+            }
             answer.add(row);
         }
 

Reply via email to