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 2023/12/03 10:47:18 UTC

(camel) branch since2 created (now 0c8573c0a96)

This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a change to branch since2
in repository https://gitbox.apache.org/repos/asf/camel.git


      at 0c8573c0a96 CAMEL-20180: camel-console - JSon output for date/time should be computer value

This branch includes the following new commits:

     new 0c8573c0a96 CAMEL-20180: camel-console - JSon output for date/time should be computer value

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



(camel) 01/01: CAMEL-20180: camel-console - JSon output for date/time should be computer value

Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch since2
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 0c8573c0a965b53d6e258baebb3d2e8d9b092b67
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sun Dec 3 11:46:57 2023 +0100

    CAMEL-20180: camel-console - JSon output for date/time should be computer value
---
 .../camel/impl/console/ConsumerDevConsole.java     | 13 ++++++-----
 .../camel/impl/console/ContextDevConsole.java      |  9 +++-----
 .../camel/impl/console/RouteControllerConsole.java | 23 ++++++-------------
 .../apache/camel/impl/console/RouteDevConsole.java | 21 +++++++++--------
 .../ROOT/pages/camel-4x-upgrade-guide-4_3.adoc     | 14 ++++++++++++
 .../commands/action/RouteControllerAction.java     | 22 +++++++++++++-----
 .../core/commands/process/CamelContextStatus.java  | 15 ++++++++-----
 .../commands/process/CamelProcessorStatus.java     | 26 +++++++++++++---------
 .../core/commands/process/CamelRouteStatus.java    | 15 ++++++++-----
 .../jbang/core/commands/process/ListConsumer.java  | 15 ++++++++-----
 10 files changed, 100 insertions(+), 73 deletions(-)

diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/ConsumerDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/ConsumerDevConsole.java
index 4ff91adab1d..3341c80c43d 100644
--- a/core/camel-console/src/main/java/org/apache/camel/impl/console/ConsumerDevConsole.java
+++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/ConsumerDevConsole.java
@@ -32,7 +32,6 @@ import org.apache.camel.api.management.mbean.ManagedRouteMBean;
 import org.apache.camel.api.management.mbean.ManagedSchedulePollConsumerMBean;
 import org.apache.camel.spi.annotations.DevConsole;
 import org.apache.camel.support.console.AbstractDevConsole;
-import org.apache.camel.util.TimeUtils;
 import org.apache.camel.util.json.JsonObject;
 
 @DevConsole("consumer")
@@ -225,15 +224,17 @@ public class ConsumerDevConsole extends AbstractDevConsole {
                             stats.put("lastProcessingTime", mr.getLastProcessingTime());
                             stats.put("deltaProcessingTime", mr.getDeltaProcessingTime());
                         }
-                        Date last = mr.getLastExchangeCompletedTimestamp();
+                        Date last = mr.getLastExchangeCreatedTimestamp();
                         if (last != null) {
-                            String ago = TimeUtils.printSince(last.getTime());
-                            stats.put("sinceLastCompletedExchange", ago);
+                            stats.put("lastCreatedExchangeTimestamp", last.getTime());
+                        }
+                        last = mr.getLastExchangeCompletedTimestamp();
+                        if (last != null) {
+                            stats.put("lastCompletedExchangeTimestamp", last.getTime());
                         }
                         last = mr.getLastExchangeFailureTimestamp();
                         if (last != null) {
-                            String ago = TimeUtils.printSince(last.getTime());
-                            stats.put("sinceLastFailedExchange", ago);
+                            stats.put("lastFailedExchangeTimestamp", last.getTime());
                         }
                         jo.put("statistics", stats);
                     }
diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/ContextDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/ContextDevConsole.java
index 8d64127d5c8..56712ecd372 100644
--- a/core/camel-console/src/main/java/org/apache/camel/impl/console/ContextDevConsole.java
+++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/ContextDevConsole.java
@@ -154,18 +154,15 @@ public class ContextDevConsole extends AbstractDevConsole {
                 }
                 Date last = mb.getLastExchangeCreatedTimestamp();
                 if (last != null) {
-                    String ago = TimeUtils.printSince(last.getTime());
-                    stats.put("sinceLastCreatedExchange", ago);
+                    stats.put("lastCreatedExchangeTimestamp", last.getTime());
                 }
                 last = mb.getLastExchangeCompletedTimestamp();
                 if (last != null) {
-                    String ago = TimeUtils.printSince(last.getTime());
-                    stats.put("sinceLastCompletedExchange", ago);
+                    stats.put("lastCompletedExchangeTimestamp", last.getTime());
                 }
                 last = mb.getLastExchangeFailureTimestamp();
                 if (last != null) {
-                    String ago = TimeUtils.printSince(last.getTime());
-                    stats.put("sinceLastFailedExchange", ago);
+                    stats.put("lastFailedExchangeTimestamp", last.getTime());
                 }
                 root.put("statistics", stats);
             }
diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteControllerConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteControllerConsole.java
index 988cf6a4752..cacfc0c8f86 100644
--- a/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteControllerConsole.java
+++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteControllerConsole.java
@@ -199,30 +199,21 @@ public class RouteControllerConsole extends AbstractDevConsole {
                 BackOffTimer.Task state = src.getRestartingRouteState(routeId);
                 String supervising = state != null ? state.getStatus().name() : null;
                 long attempts = state != null ? state.getCurrentAttempts() : 0;
-                String elapsed = "";
-                String last = "";
-                String next = "";
+                long elapsed;
+                long last;
+                long next;
                 // we can only track elapsed/time for active supervised routes
-                long time = state != null && BackOffTimer.Task.Status.Active == state.getStatus()
+                elapsed = state != null && BackOffTimer.Task.Status.Active == state.getStatus()
                         ? state.getCurrentElapsedTime() : 0;
-                if (time > 0) {
-                    elapsed = TimeUtils.printDuration(time);
-                }
-                time = state != null && BackOffTimer.Task.Status.Active == state.getStatus() ? state.getLastAttemptTime() : 0;
-                if (time > 0) {
-                    last = TimeUtils.printSince(time);
-                }
-                time = state != null && BackOffTimer.Task.Status.Active == state.getStatus() ? state.getNextAttemptTime() : 0;
-                if (time > 0) {
-                    next = TimeUtils.printSince(time);
-                }
+                last = state != null && BackOffTimer.Task.Status.Active == state.getStatus() ? state.getLastAttemptTime() : 0;
+                next = state != null && BackOffTimer.Task.Status.Active == state.getStatus() ? state.getNextAttemptTime() : 0;
                 JsonObject jo = new JsonObject();
                 list.add(jo);
                 jo.put("routeId", routeId);
                 jo.put("status", status);
                 jo.put("uri", uri);
                 jo.put("attempts", attempts);
-                jo.put("lastAttemptAgo", last);
+                jo.put("lastAttempt", last);
                 jo.put("nextAttempt", next);
                 jo.put("elapsed", elapsed);
                 if (supervising != null) {
diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteDevConsole.java
index a166ccb6585..e060fb93607 100644
--- a/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteDevConsole.java
+++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/RouteDevConsole.java
@@ -247,18 +247,15 @@ public class RouteDevConsole extends AbstractDevConsole {
             }
             Date last = mrb.getLastExchangeCreatedTimestamp();
             if (last != null) {
-                String ago = TimeUtils.printSince(last.getTime());
-                stats.put("sinceLastCreatedExchange", ago);
+                stats.put("lastCreatedExchangeTimestamp", last.getTime());
             }
             last = mrb.getLastExchangeCompletedTimestamp();
             if (last != null) {
-                String ago = TimeUtils.printSince(last.getTime());
-                stats.put("sinceLastCompletedExchange", ago);
+                stats.put("lastCompletedExchangeTimestamp", last.getTime());
             }
             last = mrb.getLastExchangeFailureTimestamp();
             if (last != null) {
-                String ago = TimeUtils.printSince(last.getTime());
-                stats.put("sinceLastFailedExchange", ago);
+                stats.put("lastFailedExchangeTimestamp", last.getTime());
             }
             jo.put("statistics", stats);
             if (processors) {
@@ -333,15 +330,17 @@ public class RouteDevConsole extends AbstractDevConsole {
                 stats.put("lastProcessingTime", mp.getLastProcessingTime());
                 stats.put("deltaProcessingTime", mp.getDeltaProcessingTime());
             }
-            Date last = mp.getLastExchangeCompletedTimestamp();
+            Date last = mp.getLastExchangeCreatedTimestamp();
             if (last != null) {
-                String ago = TimeUtils.printSince(last.getTime());
-                stats.put("sinceLastCompletedExchange", ago);
+                stats.put("lastCreatedExchangeTimestamp", last.getTime());
+            }
+            last = mp.getLastExchangeCompletedTimestamp();
+            if (last != null) {
+                stats.put("lastCompletedExchangeTimestamp", last.getTime());
             }
             last = mp.getLastExchangeFailureTimestamp();
             if (last != null) {
-                String ago = TimeUtils.printSince(last.getTime());
-                stats.put("sinceLastFailedExchange", ago);
+                stats.put("lastFailedExchangeTimestamp", last.getTime());
             }
             jo.put("statistics", stats);
         }
diff --git a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_3.adoc b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_3.adoc
index 87d278e8df1..cd0bc5e21e8 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_3.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_3.adoc
@@ -50,6 +50,20 @@ from("seda:c")
 If the `nodeIdPrefix` has been configured on routes, then the MBeans for the processors will now use the prefix
 in their `ObjectName` also.
 
+=== camel-console
+
+The context and route consoles has changed some values in their JSon output data for timestamp for created, completed and failed exchanges.
+
+|===
+|**Old Key** |**New Key**
+| `sinceLastCreatedExchange` | `lastCreatedExchangeTimestamp`
+| `sinceLastCompletedExchange` | `lastCompletedExchangeTimestamp`
+| `sinceLastFailedExchange` | `lastFailedExchangeTimestamp`
+|===
+
+The values are also changed from String ago to timestamp in millis.For example old value `3m5s` is now `1701599263337`.
+
+
 === camel-jbang
 
 The `camel transform` command has been renamed to `camel transform route` as this command is used for transforming
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/RouteControllerAction.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/RouteControllerAction.java
index a1bbb302ef5..08554025b69 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/RouteControllerAction.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/action/RouteControllerAction.java
@@ -33,6 +33,7 @@ import org.apache.camel.util.FileUtil;
 import org.apache.camel.util.IOHelper;
 import org.apache.camel.util.StopWatch;
 import org.apache.camel.util.StringHelper;
+import org.apache.camel.util.TimeUtils;
 import org.apache.camel.util.json.JsonArray;
 import org.apache.camel.util.json.JsonObject;
 import org.apache.camel.util.json.Jsoner;
@@ -130,9 +131,18 @@ public class RouteControllerAction extends ActionWatchCommand {
 
                 if (supervising) {
                     row.attempts = jt.getLong("attempts");
-                    row.lastAttemptAgo = jt.getString("lastAttemptAgo");
-                    row.nextAttempt = jt.getString("nextAttempt");
-                    row.elapsed = jt.getString("elapsed");
+                    long time = jt.getLong("lastAttempt");
+                    if (time > 0) {
+                        row.lastAttempt = TimeUtils.printDuration(time);
+                    }
+                    time = jt.getLong("nextAttempt");
+                    if (time > 0) {
+                        row.nextAttempt = TimeUtils.printDuration(time);
+                    }
+                    time = jt.getLong("elapsed");
+                    if (time > 0) {
+                        row.elapsed = TimeUtils.printDuration(time);
+                    }
                     row.supervising = jt.getString("supervising");
                     row.error = jt.getString("error");
                     row.stackTrace = jt.getCollection("stackTrace");
@@ -280,8 +290,8 @@ public class RouteControllerAction extends ActionWatchCommand {
     }
 
     protected String getLast(Row r) {
-        if (r.lastAttemptAgo != null && !r.lastAttemptAgo.isEmpty()) {
-            String s = r.lastAttemptAgo;
+        if (r.lastAttempt != null && !r.lastAttempt.isEmpty()) {
+            String s = r.lastAttempt;
             if (r.elapsed != null && !r.elapsed.isEmpty()) {
                 s += " (" + r.elapsed + ")";
             }
@@ -295,7 +305,7 @@ public class RouteControllerAction extends ActionWatchCommand {
         String status;
         String uri;
         long attempts;
-        String lastAttemptAgo;
+        String lastAttempt;
         String nextAttempt;
         String elapsed;
         String supervising;
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/CamelContextStatus.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/CamelContextStatus.java
index c8893cbc072..4344d97a2e4 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/CamelContextStatus.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/CamelContextStatus.java
@@ -100,17 +100,20 @@ public class CamelContextStatus extends ProcessWatchCommand {
                             if (last != null) {
                                 row.delta = last.toString();
                             }
-                            last = stats.get("sinceLastCreatedExchange");
+                            last = stats.get("lastCreatedExchangeTimestamp");
                             if (last != null) {
-                                row.sinceLastStarted = last.toString();
+                                long time = Long.parseLong(last.toString());
+                                row.sinceLastStarted = TimeUtils.printSince(time);
                             }
-                            last = stats.get("sinceLastCompletedExchange");
+                            last = stats.get("lastCompletedExchangeTimestamp");
                             if (last != null) {
-                                row.sinceLastCompleted = last.toString();
+                                long time = Long.parseLong(last.toString());
+                                row.sinceLastCompleted = TimeUtils.printSince(time);
                             }
-                            last = stats.get("sinceLastFailedExchange");
+                            last = stats.get("lastFailedExchangeTimestamp");
                             if (last != null) {
-                                row.sinceLastFailed = last.toString();
+                                long time = Long.parseLong(last.toString());
+                                row.sinceLastFailed = TimeUtils.printSince(time);
                             }
                         }
                         JsonArray array = (JsonArray) root.get("routes");
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/CamelProcessorStatus.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/CamelProcessorStatus.java
index ec9a34e71cf..631c788cc41 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/CamelProcessorStatus.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/CamelProcessorStatus.java
@@ -29,6 +29,7 @@ import com.github.freva.asciitable.OverflowBehaviour;
 import org.apache.camel.dsl.jbang.core.commands.CamelJBangMain;
 import org.apache.camel.dsl.jbang.core.common.ProcessHelper;
 import org.apache.camel.util.StringHelper;
+import org.apache.camel.util.TimeUtils;
 import org.apache.camel.util.json.JsonArray;
 import org.apache.camel.util.json.JsonObject;
 import org.apache.camel.util.json.Jsoner;
@@ -121,17 +122,20 @@ public class CamelProcessorStatus extends ProcessWatchCommand {
                                 if (last != null) {
                                     row.delta = last.toString();
                                 }
-                                last = stats.get("sinceLastCreatedExchange");
+                                last = stats.get("lastCreatedExchangeTimestamp");
                                 if (last != null) {
-                                    row.sinceLastStarted = last.toString();
+                                    long time = Long.parseLong(last.toString());
+                                    row.sinceLastStarted = TimeUtils.printSince(time);
                                 }
-                                last = stats.get("sinceLastCompletedExchange");
+                                last = stats.get("lastCompletedExchangeTimestamp");
                                 if (last != null) {
-                                    row.sinceLastCompleted = last.toString();
+                                    long time = Long.parseLong(last.toString());
+                                    row.sinceLastCompleted = TimeUtils.printSince(time);
                                 }
-                                last = stats.get("sinceLastFailedExchange");
+                                last = stats.get("lastFailedExchangeTimestamp");
                                 if (last != null) {
-                                    row.sinceLastFailed = last.toString();
+                                    long time = Long.parseLong(last.toString());
+                                    row.sinceLastFailed = TimeUtils.printSince(time);
                                 }
                             }
 
@@ -194,13 +198,15 @@ public class CamelProcessorStatus extends ProcessWatchCommand {
                 if (last != null) {
                     row.delta = last.toString();
                 }
-                last = stats.get("sinceLastCompletedExchange");
+                last = stats.get("lastCompletedExchangeTimestamp");
                 if (last != null) {
-                    row.sinceLastCompleted = last.toString();
+                    long time = Long.parseLong(last.toString());
+                    row.sinceLastCompleted = TimeUtils.printSince(time);
                 }
-                last = stats.get("sinceLastFailedExchange");
+                last = stats.get("lastFailedExchangeTimestamp");
                 if (last != null) {
-                    row.sinceLastFailed = last.toString();
+                    long time = Long.parseLong(last.toString());
+                    row.sinceLastFailed = TimeUtils.printSince(time);
                 }
             }
             if (source) {
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/CamelRouteStatus.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/CamelRouteStatus.java
index 2fcc8f062bb..8d9bc263ae5 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/CamelRouteStatus.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/CamelRouteStatus.java
@@ -137,17 +137,20 @@ public class CamelRouteStatus extends ProcessWatchCommand {
                                 if (last != null) {
                                     row.delta = last.toString();
                                 }
-                                last = stats.get("sinceLastCreatedExchange");
+                                last = stats.get("lastCreatedExchangeTimestamp");
                                 if (last != null) {
-                                    row.sinceLastStarted = last.toString();
+                                    long time = Long.parseLong(last.toString());
+                                    row.sinceLastStarted = TimeUtils.printSince(time);
                                 }
-                                last = stats.get("sinceLastCompletedExchange");
+                                last = stats.get("lastCompletedExchangeTimestamp");
                                 if (last != null) {
-                                    row.sinceLastCompleted = last.toString();
+                                    long time = Long.parseLong(last.toString());
+                                    row.sinceLastCompleted = TimeUtils.printSince(time);
                                 }
-                                last = stats.get("sinceLastFailedExchange");
+                                last = stats.get("lastFailedExchangeTimestamp");
                                 if (last != null) {
-                                    row.sinceLastFailed = last.toString();
+                                    long time = Long.parseLong(last.toString());
+                                    row.sinceLastFailed = TimeUtils.printSince(time);
                                 }
                             }
 
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListConsumer.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListConsumer.java
index 6121497385d..68f14c369e1 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListConsumer.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/process/ListConsumer.java
@@ -110,17 +110,20 @@ public class ListConsumer extends ProcessWatchCommand {
                                 row.age = TimeUtils.printSince(row.uptime);
                                 Map<String, ?> stats = o.getMap("statistics");
                                 if (stats != null) {
-                                    Object last = stats.get("sinceLastCreatedExchange");
+                                    Object last = stats.get("lastCreatedExchangeTimestamp");
                                     if (last != null) {
-                                        row.sinceLastStarted = last.toString();
+                                        long time = Long.parseLong(last.toString());
+                                        row.sinceLastStarted = TimeUtils.printSince(time);
                                     }
-                                    last = stats.get("sinceLastCompletedExchange");
+                                    last = stats.get("lastCompletedExchangeTimestamp");
                                     if (last != null) {
-                                        row.sinceLastCompleted = last.toString();
+                                        long time = Long.parseLong(last.toString());
+                                        row.sinceLastCompleted = TimeUtils.printSince(time);
                                     }
-                                    last = stats.get("sinceLastFailedExchange");
+                                    last = stats.get("lastFailedExchangeTimestamp");
                                     if (last != null) {
-                                        row.sinceLastFailed = last.toString();
+                                        long time = Long.parseLong(last.toString());
+                                        row.sinceLastFailed = TimeUtils.printSince(time);
                                     }
                                 }
                                 boolean add = true;