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

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

commit b6eb481723b5170d64ca05a3a4df9d480afd86de
Author: Claus Ibsen <claus.ib...@gmail.com>
AuthorDate: Wed Nov 29 08:46:15 2023 +0100

    CAMEL-20164: camel-core - Dev console for consumer
---
 .../camel/impl/console/ConsumerDevConsole.java       |  7 +++++--
 .../mbean/ManagedSchedulePollConsumerMBean.java      | 14 ++++++++++++++
 .../mbean/ManagedScheduledPollConsumer.java          | 20 ++++++++++++++++++++
 .../apache/camel/support/ScheduledPollConsumer.java  | 14 +++++++-------
 4 files changed, 46 insertions(+), 9 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 5c7159e7468..401e608f63b 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
@@ -58,13 +58,16 @@ public class ConsumerDevConsole extends AbstractDevConsole {
                     sb.append(String.format("\n    Inflight: %d", inflight));
                     if (mcc instanceof ManagedSchedulePollConsumerMBean mpc) {
                         sb.append(String.format("\n    Polling: %s", 
mpc.isPolling()));
+                        sb.append(String.format("\n    First Poll Done: %s", 
mpc.isFirstPollDone()));
                         sb.append(String.format("\n    Scheduler Started: %s", 
mpc.isSchedulerStarted()));
                         sb.append(String.format("\n    Scheduler Class: %s", 
mpc.getSchedulerClassName()));
-                        sb.append(String.format("\n    Running Logging Level: 
%s", mpc.getRunningLoggingLevel()));
+                        sb.append(String.format("\n    Repeat Count: %s", 
mpc.getRepeatCount()));
                         sb.append(String.format("\n    Fixed Delay: %s", 
mpc.isUseFixedDelay()));
                         sb.append(String.format("\n    Greedy: %s", 
mpc.isGreedy()));
+                        sb.append(String.format("\n    Running Logging Level: 
%s", mpc.getRunningLoggingLevel()));
                         sb.append(String.format("\n    Send Empty Message When 
Idle: %s", mpc.isSendEmptyMessageWhenIdle()));
-                        sb.append(String.format("\n    Repeat Count: %s", 
mpc.getRepeatCount()));
+                        sb.append(String.format("\n    Counter(total: %d 
success: %d error: %d)",
+                                mpc.getCounter(), mpc.getSuccessCounter(), 
mpc.getErrorCounter()));
                         sb.append(String.format("\n    Delay(initial: %d 
delay: %d unit: %s)",
                                 mpc.getInitialDelay(), mpc.getDelay(), 
mpc.getTimeUnit()));
                         sb.append(String.format(
diff --git 
a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedSchedulePollConsumerMBean.java
 
b/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedSchedulePollConsumerMBean.java
index 5cee5385216..77aa84b89f7 100644
--- 
a/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedSchedulePollConsumerMBean.java
+++ 
b/core/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedSchedulePollConsumerMBean.java
@@ -90,4 +90,18 @@ public interface ManagedSchedulePollConsumerMBean extends 
ManagedConsumerMBean {
     @ManagedAttribute(description = "Repeat count")
     long getRepeatCount();
 
+    @ManagedAttribute(description = "Whether a first pool attempt has been 
done (also if the consumer has been restarted)")
+    boolean isFirstPollDone();
+
+    @ManagedAttribute(description = "Total number of polls run")
+    long getCounter();
+
+    @ManagedAttribute(description = "Error counter. If the counter is > 0 that 
means the consumer failed polling for the last N number of times."
+                                    + " When the consumer is successfully 
again, then the error counter resets to zero.")
+    long getErrorCounter();
+
+    @ManagedAttribute(description = "Success counter. If the success is > 0 
that means the consumer succeeded polling for the last N number of times."
+                                    + " When the consumer is failing again, 
then the success counter resets to zero.")
+    long getSuccessCounter();
+
 }
diff --git 
a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedScheduledPollConsumer.java
 
b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedScheduledPollConsumer.java
index 1865ebac112..7c39603de50 100644
--- 
a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedScheduledPollConsumer.java
+++ 
b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedScheduledPollConsumer.java
@@ -152,4 +152,24 @@ public class ManagedScheduledPollConsumer extends 
ManagedConsumer implements Man
     public long getRepeatCount() {
         return getConsumer().getRepeatCount();
     }
+
+    @Override
+    public boolean isFirstPollDone() {
+        return getConsumer().isFirstPollDone();
+    }
+
+    @Override
+    public long getCounter() {
+        return getConsumer().getCounter();
+    }
+
+    @Override
+    public long getErrorCounter() {
+        return getConsumer().getErrorCounter();
+    }
+
+    @Override
+    public long getSuccessCounter() {
+        return getConsumer().getSuccessCounter();
+    }
 }
diff --git 
a/core/camel-support/src/main/java/org/apache/camel/support/ScheduledPollConsumer.java
 
b/core/camel-support/src/main/java/org/apache/camel/support/ScheduledPollConsumer.java
index ffcfa3384ff..86337c9979c 100644
--- 
a/core/camel-support/src/main/java/org/apache/camel/support/ScheduledPollConsumer.java
+++ 
b/core/camel-support/src/main/java/org/apache/camel/support/ScheduledPollConsumer.java
@@ -452,16 +452,13 @@ public abstract class ScheduledPollConsumer extends 
DefaultConsumer
         this.scheduledExecutorService = scheduledExecutorService;
     }
 
-    // Implementation methods
-    // 
-------------------------------------------------------------------------
-
     /**
      * Gets the error counter. If the counter is > 0 that means the consumer 
failed polling for the last N number of
      * times. When the consumer is successfully again, then the error counter 
resets to zero.
      *
      * @see #getSuccessCounter()
      */
-    protected long getErrorCounter() {
+    public long getErrorCounter() {
         return errorCounter;
     }
 
@@ -471,24 +468,27 @@ public abstract class ScheduledPollConsumer extends 
DefaultConsumer
      *
      * @see #getErrorCounter()
      */
-    protected long getSuccessCounter() {
+    public long getSuccessCounter() {
         return successCounter;
     }
 
     /**
      * Gets the total number of polls run.
      */
-    protected long getCounter() {
+    public long getCounter() {
         return counter.get();
     }
 
     /**
      * Whether a first pool attempt has been done (also if the consumer has 
been restarted)
      */
-    protected boolean isFirstPollDone() {
+    public boolean isFirstPollDone() {
         return firstPollDone;
     }
 
+    // Implementation methods
+    // 
-------------------------------------------------------------------------
+
     /**
      * Gets the last caused error (exception) for the last poll that failed. 
When the consumer is successfully again,
      * then the error resets to null.

Reply via email to