You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by ro...@apache.org on 2019/11/26 15:31:38 UTC

[james-project] 03/07: JAMES-2813 expose singe active consumer information in management API

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

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

commit 1e9f23b5414c41c73af4961e9431779b6157ffba
Author: RĂ©mi KOWALSKI <rk...@linagora.com>
AuthorDate: Mon Oct 21 10:17:00 2019 +0200

    JAMES-2813 expose singe active consumer information in management API
---
 .../backends/rabbitmq/RabbitMQManagementAPI.java   | 90 +++++++++++++++++++++-
 1 file changed, 89 insertions(+), 1 deletion(-)

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 9f688e8..17983c0 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
@@ -23,9 +23,10 @@ import java.util.Date;
 import java.util.List;
 import java.util.Map;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonValue;
 import com.google.common.base.MoreObjects;
-
 import feign.Feign;
 import feign.Logger;
 import feign.Param;
@@ -84,6 +85,90 @@ public interface RabbitMQManagementAPI {
         }
     }
 
+    class MessageQueueDetails {
+        @JsonProperty("name")
+        String name;
+
+        @JsonProperty("vhost")
+        String vhost;
+
+        @JsonProperty("auto_delete")
+        boolean autoDelete;
+
+        @JsonProperty("durable")
+        boolean durable;
+
+        @JsonProperty("exclusive")
+        boolean exclusive;
+
+        @JsonProperty("arguments")
+        Map<String, String> arguments;
+
+        @JsonProperty("consumer_details")
+        List<ConsumerDetails> consumerDetails;
+
+        public String getName() {
+            return name;
+        }
+
+        public String getVhost() {
+            return vhost;
+        }
+
+        public boolean isAutoDelete() {
+            return autoDelete;
+        }
+
+        public boolean isDurable() {
+            return durable;
+        }
+
+        public boolean isExclusive() {
+            return exclusive;
+        }
+
+        public Map<String, String> getArguments() {
+            return arguments;
+        }
+
+        public List<ConsumerDetails> getConsumerDetails() {
+            return consumerDetails;
+        }
+    }
+
+    class ConsumerDetails {
+        @JsonProperty("consumer_tag")
+        String tag;
+
+        @JsonProperty("activity_status")
+        ActivityStatus status;
+
+        public ActivityStatus getStatus() {
+            return this.status;
+        }
+
+        public String getTag() {
+            return this.tag;
+        }
+    }
+
+    @JsonFormat(shape = JsonFormat.Shape.STRING)
+    enum ActivityStatus {
+        Waiting("waiting"),
+        SingleActive("single_active");
+
+        private final String value;
+
+        ActivityStatus(String value) {
+            this.value = value;
+        }
+
+        @JsonValue
+        String getValue() {
+            return value;
+        }
+    }
+
     class Exchange {
 
         @JsonProperty("name")
@@ -164,6 +249,9 @@ public interface RabbitMQManagementAPI {
     @RequestLine("GET /api/queues")
     List<MessageQueue> listQueues();
 
+    @RequestLine(value = "GET /api/queues/{vhost}/{name}", decodeSlash = false)
+    MessageQueueDetails queueDetails(@Param("vhost") String vhost, @Param("name") String name);
+
     @RequestLine(value = "DELETE /api/queues/{vhost}/{name}", decodeSlash = false)
     void deleteQueue(@Param("vhost") String vhost, @Param("name") String name);
 


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