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 <claus.ib...@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;