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

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


The following commit(s) were added to refs/heads/main by this push:
     new 295d75c6817 Added support to set x-queue-type in RabbitMQ (#8725)
295d75c6817 is described below

commit 295d75c6817ed899d94fcb1facf31941b31daa82
Author: Eduan <bekker.ed...@gmail.com>
AuthorDate: Sat Nov 19 10:37:32 2022 +0200

    Added support to set x-queue-type in RabbitMQ (#8725)
---
 .../java/org/apache/camel/component/rabbitmq/RabbitMQConstants.java  | 1 +
 .../org/apache/camel/component/rabbitmq/RabbitMQDeclareSupport.java  | 5 +++++
 .../apache/camel/component/springrabbit/SpringRabbitMQConstants.java | 1 +
 .../apache/camel/component/springrabbit/SpringRabbitMQEndpoint.java  | 4 ++++
 4 files changed, 11 insertions(+)

diff --git 
a/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQConstants.java
 
b/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQConstants.java
index a99ef556283..d07efe30c2e 100644
--- 
a/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQConstants.java
+++ 
b/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQConstants.java
@@ -96,6 +96,7 @@ public final class RabbitMQConstants {
     public static final String RABBITMQ_QUEUE_MESSAGE_TTL_KEY = 
"x-message-ttl";
     public static final String RABBITMQ_QUEUE_TTL_KEY = "x-expires";
     public static final String RABBITMQ_QUEUE_SINGLE_ACTIVE_CONSUMER_KEY = 
"x-single-active-consumer";
+    public static final String RABBITMQ_QUEUE_TYPE_KEY = "x-queue-type";
 
     public static final Set<String> BASIC_AMQP_PROPERTIES = Stream
             .of(CONTENT_TYPE, PRIORITY, MESSAGE_ID, CLUSTERID, REPLY_TO, 
CORRELATIONID, DELIVERY_MODE, USERID, TYPE,
diff --git 
a/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQDeclareSupport.java
 
b/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQDeclareSupport.java
index 8b7b56158b0..bd2a3281a41 100644
--- 
a/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQDeclareSupport.java
+++ 
b/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQDeclareSupport.java
@@ -100,6 +100,11 @@ public class RabbitMQDeclareSupport {
             
queueArgs.put(RabbitMQConstants.RABBITMQ_QUEUE_SINGLE_ACTIVE_CONSUMER_KEY,
                     Boolean.parseBoolean((String) singleConsumer));
         }
+
+        Object queueType = 
queueArgs.get(RabbitMQConstants.RABBITMQ_QUEUE_TYPE_KEY);
+        if (queueType instanceof String) {
+            queueArgs.put(RabbitMQConstants.RABBITMQ_QUEUE_TYPE_KEY, 
singleConsumer);
+        }
     }
 
     private void populateQueueArgumentsFromDeadLetterExchange(final 
Map<String, Object> queueArgs) {
diff --git 
a/components/camel-spring-rabbitmq/src/main/java/org/apache/camel/component/springrabbit/SpringRabbitMQConstants.java
 
b/components/camel-spring-rabbitmq/src/main/java/org/apache/camel/component/springrabbit/SpringRabbitMQConstants.java
index 7e51f6384e7..bb012c425e2 100644
--- 
a/components/camel-spring-rabbitmq/src/main/java/org/apache/camel/component/springrabbit/SpringRabbitMQConstants.java
+++ 
b/components/camel-spring-rabbitmq/src/main/java/org/apache/camel/component/springrabbit/SpringRabbitMQConstants.java
@@ -39,6 +39,7 @@ public final class SpringRabbitMQConstants {
     public static final String DELIVERY_LIMIT = "x-delivery-limit";
     public static final String EXPIRES = "x-expires";
     public static final String SINGLE_ACTIVE_CONSUMER = 
"x-single-active-consumer";
+    public static final String QUEUE_TYPE = "x-queue-type";
 
     private SpringRabbitMQConstants() {
         // Constants class
diff --git 
a/components/camel-spring-rabbitmq/src/main/java/org/apache/camel/component/springrabbit/SpringRabbitMQEndpoint.java
 
b/components/camel-spring-rabbitmq/src/main/java/org/apache/camel/component/springrabbit/SpringRabbitMQEndpoint.java
index 84b5b49f1a8..543f7c4c419 100644
--- 
a/components/camel-spring-rabbitmq/src/main/java/org/apache/camel/component/springrabbit/SpringRabbitMQEndpoint.java
+++ 
b/components/camel-spring-rabbitmq/src/main/java/org/apache/camel/component/springrabbit/SpringRabbitMQEndpoint.java
@@ -718,6 +718,10 @@ public class SpringRabbitMQEndpoint extends 
DefaultEndpoint implements AsyncEndp
         if (arg instanceof String) {
             args.put(SpringRabbitMQConstants.SINGLE_ACTIVE_CONSUMER, 
Boolean.parseBoolean((String) arg));
         }
+        arg = args.get(SpringRabbitMQConstants.QUEUE_TYPE);
+        if (arg instanceof String) {
+            args.put(SpringRabbitMQConstants.QUEUE_TYPE, arg);
+        }
     }
 
 }

Reply via email to