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); + } } }