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 <[email protected]>
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);
+ }
}
}