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 990f48577e3 CAMEL-20164: camel-jbang - Add camel get consumer command
990f48577e3 is described below

commit 990f48577e34b14c87fc0033aec6987c1c7b6105
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Fri Dec 1 07:31:15 2023 +0100

    CAMEL-20164: camel-jbang - Add camel get consumer command
---
 .../camel/impl/console/ConsumerDevConsole.java     |  3 +++
 .../jbang/core/commands/process/ListConsumer.java  | 26 +++++++++++++++++++---
 2 files changed, 26 insertions(+), 3 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 869d5e017d6..50db3511a6f 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
@@ -148,7 +148,9 @@ public class ConsumerDevConsole extends AbstractDevConsole {
                     jo.put("state", mc.getState());
                     jo.put("class", mc.getServiceType());
                     jo.put("inflight", inflight);
+                    jo.put("scheduled", false);
                     if (mcc instanceof ManagedSchedulePollConsumerMBean mpc) {
+                        jo.put("scheduled", true);
                         jo.put("polling", mpc.isPolling());
                         jo.put("firstPollDone", mpc.isFirstPollDone());
                         jo.put("schedulerStarted", mpc.isSchedulerStarted());
@@ -169,6 +171,7 @@ public class ConsumerDevConsole extends AbstractDevConsole {
                         jo.put("backoffIdleThreshold", 
mpc.getBackoffIdleThreshold());
                     }
                     if ("TimerConsumer".equals(mc.getServiceType())) {
+                        jo.put("scheduled", true);
                         // need to use JMX to gather details for camel-timer 
consumer
                         try {
                             MBeanServer ms = 
ManagementFactory.getPlatformMBeanServer();
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 422526f1dee..1c7ed264db8 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
@@ -52,6 +52,10 @@ public class ListConsumer extends ProcessWatchCommand {
                         description = "Filter consumers by URI")
     String filter;
 
+    @CommandLine.Option(names = { "--scheduled" },
+                        description = "Filter consumer to only show scheduled 
based consumers")
+    boolean scheduled;
+
     @CommandLine.Option(names = { "--short-uri" },
                         description = "List endpoint URI without query 
parameters (short)")
     boolean shortUri;
@@ -95,6 +99,7 @@ public class ListConsumer extends ProcessWatchCommand {
                                 row.uri = o.getString("uri");
                                 row.state = o.getString("state");
                                 row.className = o.getString("class");
+                                row.scheduled = o.getBoolean("scheduled");
                                 row.inflight = o.getInteger("inflight");
                                 row.polling = o.getBoolean("polling");
                                 row.totalCounter = o.getLong("totalCounter");
@@ -115,6 +120,9 @@ public class ListConsumer extends ProcessWatchCommand {
                                         add = false;
                                     }
                                 }
+                                if (scheduled && !row.scheduled) {
+                                    add = false;
+                                }
                                 if (limit > 0 && rows.size() >= limit) {
                                     add = false;
                                 }
@@ -142,10 +150,13 @@ public class ListConsumer extends ProcessWatchCommand {
                 new 
Column().header("NAME").dataAlign(HorizontalAlign.LEFT).maxWidth(30, 
OverflowBehaviour.ELLIPSIS_RIGHT)
                         .with(r -> r.name),
                 new 
Column().header("AGE").headerAlign(HorizontalAlign.CENTER).with(r -> r.age),
-                new Column().header("ID").with(r -> r.id),
-                new Column().header("STATE").with(this::getState),
+                new 
Column().header("ID").dataAlign(HorizontalAlign.LEFT).maxWidth(20, 
OverflowBehaviour.ELLIPSIS_RIGHT)
+                        .with(r -> r.id),
+                new 
Column().header("STATE").headerAlign(HorizontalAlign.CENTER).with(this::getState),
+                new 
Column().header("TYPE").dataAlign(HorizontalAlign.LEFT).maxWidth(20, 
OverflowBehaviour.ELLIPSIS_RIGHT)
+                        .with(this::getType),
                 new Column().header("INFLIGHT").with(r -> "" + r.inflight),
-                new Column().header("POLLS").with(this::getTotal),
+                new Column().header("POLL").with(this::getTotal),
                 new 
Column().header("URI").visible(!wideUri).dataAlign(HorizontalAlign.LEFT)
                         .maxWidth(90, OverflowBehaviour.ELLIPSIS_RIGHT)
                         .with(this::getUri),
@@ -172,6 +183,14 @@ public class ListConsumer extends ProcessWatchCommand {
         return r.state;
     }
 
+    private String getType(Row r) {
+        String s = r.className;
+        if (s.endsWith("Consumer")) {
+            s = s.substring(0, s.length() - 8);
+        }
+        return s;
+    }
+
     private String getTotal(Row r) {
         if (r.totalCounter != null) {
             return String.valueOf(r.totalCounter);
@@ -207,6 +226,7 @@ public class ListConsumer extends ProcessWatchCommand {
         String uri;
         String state;
         String className;
+        boolean scheduled;
         int inflight;
         Boolean polling;
         Long totalCounter;

Reply via email to