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 11:11:19 UTC
(camel) branch main updated: CAMEL-20180: camel-console - JSon output for date/time should be computer value (#12297)
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new 08f8a45ab00 CAMEL-20180: camel-console - JSon output for date/time should be computer value (#12297)
08f8a45ab00 is described below
commit 08f8a45ab005e2d0037ccb9016f938d1b8227f26
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sun Dec 3 12:11:13 2023 +0100
CAMEL-20180: camel-console - JSon output for date/time should be computer value (#12297)
---
.../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;