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 2026/07/11 08:43:36 UTC
(camel) 01/01: CAMEL-24003: Wire activity data into CLI connector
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch feature/CAMEL-24003-cli-activity-connector
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 6fbc4f365791b78cc12692aaa9017c6b716de543
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Sat Jul 11 10:43:21 2026 +0200
CAMEL-24003: Wire activity data into CLI connector
LocalCliConnector now writes {pid}-activity.json with completed
exchange summaries from the BacklogTracer activity queue.
ActivityDevConsole changed to use read-only getActivity() instead
of dumpActivity() so the queue is not cleared on each poll.
Co-Authored-By: Claude Opus 4.6 <no...@anthropic.com>
Signed-off-by: Claus Ibsen <cl...@gmail.com>
---
.../apache/camel/impl/console/ActivityDevConsole.java | 2 +-
.../apache/camel/cli/connector/LocalCliConnector.java | 19 +++++++++++++++++++
2 files changed, 20 insertions(+), 1 deletion(-)
diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/ActivityDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/ActivityDevConsole.java
index 28fb5dbec054..6e9c211dc200 100644
--- a/core/camel-console/src/main/java/org/apache/camel/impl/console/ActivityDevConsole.java
+++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/ActivityDevConsole.java
@@ -62,7 +62,7 @@ public class ActivityDevConsole extends AbstractDevConsole {
JsonArray arr = new JsonArray();
root.put("activity", arr);
- for (BacklogTracerEventMessage event : tracer.dumpActivity()) {
+ for (BacklogTracerEventMessage event : tracer.getActivity()) {
JsonObject jo = new JsonObject();
jo.put("uid", event.getUid());
jo.put("exchangeId", event.getExchangeId());
diff --git a/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java b/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java
index b06303fceb46..4e8123d0d767 100644
--- a/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java
+++ b/dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java
@@ -130,6 +130,7 @@ public class LocalCliConnector extends ServiceSupport implements CliConnector, C
private File errorFile;
private File receiveFile;
private long receiveFilePos; // keep track of receive offset
+ private File activityFile;
private byte[] lastSource;
private ExpressionDefinition lastSourceExpression;
@@ -202,6 +203,7 @@ public class LocalCliConnector extends ServiceSupport implements CliConnector, C
errorFile = createLockFile(lockFile.getName() + "-error.json");
debugFile = createLockFile(lockFile.getName() + "-debug.json");
receiveFile = createLockFile(lockFile.getName() + "-receive.json");
+ activityFile = createLockFile(lockFile.getName() + "-activity.json");
scheduledFuture = executor.scheduleWithFixedDelay(this::task, 0, delay, TimeUnit.MILLISECONDS);
LOG.info("Camel CLI connector enabled");
} else {
@@ -1693,6 +1695,20 @@ public class LocalCliConnector extends ServiceSupport implements CliConnector, C
LOG.trace("Error updating receive file: {} due to: {}. This exception is ignored.",
receiveFile, e.getMessage(), e);
}
+ try {
+ DevConsole dc15 = camelContext.getCamelContextExtension().getContextPlugin(DevConsoleRegistry.class)
+ .resolveById("activity");
+ if (dc15 != null) {
+ JsonObject json = (JsonObject) dc15.call(DevConsole.MediaType.JSON);
+ LOG.trace("Updating activity file: {}", activityFile);
+ String data = json.toJson() + System.lineSeparator();
+ IOHelper.writeText(data, activityFile);
+ }
+ } catch (Exception e) {
+ // ignore
+ LOG.trace("Error updating activity file: {} due to: {}. This exception is ignored.",
+ activityFile, e.getMessage(), e);
+ }
}
private JsonObject collectMemory() {
@@ -1853,6 +1869,9 @@ public class LocalCliConnector extends ServiceSupport implements CliConnector, C
if (receiveFile != null) {
FileUtil.deleteFile(receiveFile);
}
+ if (activityFile != null) {
+ FileUtil.deleteFile(activityFile);
+ }
if (executor != null) {
camelContext.getExecutorServiceManager().shutdown(executor);
executor = null;