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