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