You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2017/10/06 08:30:08 UTC

[3/4] camel git commit: CAMEL-11881: Handling special arguments when declaring queues

CAMEL-11881: Handling special arguments when declaring queues


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/a57a06e6
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/a57a06e6
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/a57a06e6

Branch: refs/heads/camel-2.19.x
Commit: a57a06e609970427bb58e0e7a2215fe7352824e6
Parents: 2b8e5ad
Author: Veiga Ortiz, Héctor <he...@here.com>
Authored: Thu Oct 5 19:16:32 2017 -0500
Committer: Claus Ibsen <da...@apache.org>
Committed: Fri Oct 6 10:29:50 2017 +0200

----------------------------------------------------------------------
 .../component/rabbitmq/RabbitMQConstants.java     |  3 +++
 .../rabbitmq/RabbitMQDeclareSupport.java          | 18 ++++++++++++++++++
 2 files changed, 21 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/a57a06e6/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQConstants.java
----------------------------------------------------------------------
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 0ae82b2..fc6a326 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
@@ -42,6 +42,9 @@ public final class RabbitMQConstants {
     public static final String RABBITMQ_DEAD_LETTER_ROUTING_KEY = "x-dead-letter-routing-key";
     public static final String RABBITMQ_DIRECT_REPLY_EXCHANGE = "";
     public static final String RABBITMQ_DIRECT_REPLY_ROUTING_KEY = "amq.rabbitmq.reply-to";
+    public static final String RABBITMQ_QUEUE_LENGHT_LIMIT_KEY = "x-max-length";
+    public static final String RABBITMQ_QUEUE_MESSAGE_TTL_KEY = "x-message-ttl";
+    public static final String RABBITMQ_QUEUE_TTL_KEY = "x-expires";
     
     private RabbitMQConstants() {
         //Constants class

http://git-wip-us.apache.org/repos/asf/camel/blob/a57a06e6/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQDeclareSupport.java
----------------------------------------------------------------------
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 b38eae9..03fc325 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
@@ -60,9 +60,27 @@ public class RabbitMQDeclareSupport {
         populateQueueArgumentsFromDeadLetterExchange(queueArgs);
         populateQueueArgumentsFromConfigurer(queueArgs);
         queueArgs.putAll(endpoint.getQueueArgs());
+        formatSpecialQueueArguments(queueArgs);
         return queueArgs;
     }
 
+    private void formatSpecialQueueArguments(Map<String, Object> queueArgs) {
+        Object queueLengthLimit = queueArgs.get(RabbitMQConstants.RABBITMQ_QUEUE_LENGHT_LIMIT_KEY);
+        if (queueLengthLimit != null && queueLengthLimit instanceof String) {
+            queueArgs.put(RabbitMQConstants.RABBITMQ_QUEUE_LENGHT_LIMIT_KEY, Long.parseLong((String) queueLengthLimit));
+        }
+
+        Object queueMessageTtl = queueArgs.get(RabbitMQConstants.RABBITMQ_QUEUE_MESSAGE_TTL_KEY);
+        if (queueMessageTtl != null && queueMessageTtl instanceof String) {
+            queueArgs.put(RabbitMQConstants.RABBITMQ_QUEUE_MESSAGE_TTL_KEY, Long.parseLong((String) queueMessageTtl));
+        }
+
+        Object queueExpiration = queueArgs.get(RabbitMQConstants.RABBITMQ_QUEUE_TTL_KEY);
+        if (queueExpiration != null && queueExpiration instanceof String) {
+            queueArgs.put(RabbitMQConstants.RABBITMQ_QUEUE_TTL_KEY, Long.parseLong((String) queueExpiration));
+        }
+    }
+
     private Map<String, Object> populateQueueArgumentsFromDeadLetterExchange(final Map<String, Object> queueArgs) {
         if (endpoint.getDeadLetterExchange() != null) {
             queueArgs.put(RabbitMQConstants.RABBITMQ_DEAD_LETTER_EXCHANGE, endpoint.getDeadLetterExchange());