You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@james.apache.org by bt...@apache.org on 2022/09/25 15:01:29 UTC

[james-project] 01/04: JAMES-3817 RabbitMQManagementAPI should parse the queue length property (`messages`) when getting Queue details

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

btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit ac4061bd61856b9c5ef837a85f742991224b7e77
Author: Quan Tran <hq...@linagora.com>
AuthorDate: Tue Sep 20 15:01:19 2022 +0700

    JAMES-3817 RabbitMQManagementAPI should parse the queue length property (`messages`) when getting Queue details
---
 .../backends/rabbitmq/RabbitMQManagementAPI.java     |  7 +++++++
 .../apache/james/backends/rabbitmq/RabbitMQTest.java | 20 ++++++++++++++++++++
 2 files changed, 27 insertions(+)

diff --git a/backends-common/rabbitmq/src/main/java/org/apache/james/backends/rabbitmq/RabbitMQManagementAPI.java b/backends-common/rabbitmq/src/main/java/org/apache/james/backends/rabbitmq/RabbitMQManagementAPI.java
index 59488fbc18..9b7dc78089 100644
--- a/backends-common/rabbitmq/src/main/java/org/apache/james/backends/rabbitmq/RabbitMQManagementAPI.java
+++ b/backends-common/rabbitmq/src/main/java/org/apache/james/backends/rabbitmq/RabbitMQManagementAPI.java
@@ -125,6 +125,9 @@ public interface RabbitMQManagementAPI {
         @JsonProperty("consumer_details")
         List<ConsumerDetails> consumerDetails;
 
+        @JsonProperty("messages")
+        long queueLength;
+
         public String getName() {
             return name;
         }
@@ -152,6 +155,10 @@ public interface RabbitMQManagementAPI {
         public List<ConsumerDetails> getConsumerDetails() {
             return consumerDetails;
         }
+
+        public long getQueueLength() {
+            return queueLength;
+        }
     }
 
     class ConsumerDetails {
diff --git a/backends-common/rabbitmq/src/test/java/org/apache/james/backends/rabbitmq/RabbitMQTest.java b/backends-common/rabbitmq/src/test/java/org/apache/james/backends/rabbitmq/RabbitMQTest.java
index 55d0e372ed..b4c025742c 100644
--- a/backends-common/rabbitmq/src/test/java/org/apache/james/backends/rabbitmq/RabbitMQTest.java
+++ b/backends-common/rabbitmq/src/test/java/org/apache/james/backends/rabbitmq/RabbitMQTest.java
@@ -117,6 +117,26 @@ class RabbitMQTest {
             awaitAtMostOneMinute.until(() -> messageReceived(channel, queueName));
         }
 
+        @Test
+        void getQueueLengthShouldReturnEmptyWhenEmptyQueue() throws Exception {
+            String queueName = createQueue(channel);
+
+            awaitAtMostOneMinute.until(() -> rabbitMQExtension.managementAPI()
+                .queueDetails("/", queueName)
+                .getQueueLength() == 0);
+        }
+
+        @Test
+        void getQueueLengthShouldReturnExactlyNumberOfMessagesInQueue() throws Exception {
+            String queueName = createQueue(channel);
+            publishAMessage(channel);
+            publishAMessage(channel);
+
+            awaitAtMostOneMinute.until(() -> rabbitMQExtension.managementAPI()
+                .queueDetails("/", queueName)
+                .getQueueLength() == 2);
+        }
+
         @Test
         void demonstrateDurability(DockerRabbitMQ rabbitMQ) throws Exception {
             String queueName = createQueue(channel);


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@james.apache.org
For additional commands, e-mail: notifications-help@james.apache.org