Repository: camel
Updated Branches:
  refs/heads/camel-2.16.x e6a6ef86f -> 324c2370d
  refs/heads/master 6ff0d39e7 -> 169463371


CAMEL-8302: Added skipQueueDeclare flag to camel-rabbitmq


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

Branch: refs/heads/master
Commit: 1f91ea7820f85cf968bde650bf5f9721e0fb7799
Parents: 6ff0d39
Author: davidwilliams <da...@getgathering.com>
Authored: Wed Nov 11 14:11:36 2015 -0500
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Fri Nov 13 16:08:47 2015 +0100

----------------------------------------------------------------------
 .../camel/component/rabbitmq/RabbitMQEndpoint.java  | 16 +++++++++++++++-
 .../component/rabbitmq/RabbitMQEndpointTest.java    |  6 ++++++
 2 files changed, 21 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/1f91ea78/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQEndpoint.java
----------------------------------------------------------------------
diff --git 
a/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQEndpoint.java
 
b/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQEndpoint.java
index 50aebd2..ff57d7b 100644
--- 
a/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQEndpoint.java
+++ 
b/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQEndpoint.java
@@ -95,6 +95,8 @@ public class RabbitMQEndpoint extends DefaultEndpoint {
     private String exchangeType = "direct";
     @UriParam
     private String routingKey;
+    @UriParam(defaultValue = "false")
+    private boolean skipQueueDeclare = false;
     @UriParam
     private Address[] addresses;
     @UriParam(defaultValue = "" + ConnectionFactory.DEFAULT_CONNECTION_TIMEOUT)
@@ -369,7 +371,7 @@ public class RabbitMQEndpoint extends DefaultEndpoint {
                 getExchangeType(),
                 isDurable(),
                 isAutoDelete(), exchangeArgs);
-        if (getQueue() != null) {
+        if (!isSkipQueueDeclare() && getQueue() != null) {
             // need to make sure the queueDeclare is same with the exchange 
declare
             channel.queueDeclare(getQueue(), isDurable(), false,
                     isAutoDelete(), queueArgs);
@@ -588,6 +590,18 @@ public class RabbitMQEndpoint extends DefaultEndpoint {
     }
 
     /**
+     * If true the producer will not declare and bind a queue.
+     * This can be used for directing messages via an existing routing key.
+     */
+    public void setSkipQueueDeclare(boolean skipQueueDeclare) {
+        this.skipQueueDeclare = skipQueueDeclare;
+    }
+
+    public boolean isSkipQueueDeclare() {
+        return skipQueueDeclare;
+    }
+
+    /**
      * If the bridgeEndpoint is true, the producer will ignore the message 
header of "rabbitmq.EXCHANGE_NAME" and "rabbitmq.ROUTING_KEY"
      */
     public void setBridgeEndpoint(boolean bridgeEndpoint) {

http://git-wip-us.apache.org/repos/asf/camel/blob/1f91ea78/components/camel-rabbitmq/src/test/java/org/apache/camel/component/rabbitmq/RabbitMQEndpointTest.java
----------------------------------------------------------------------
diff --git 
a/components/camel-rabbitmq/src/test/java/org/apache/camel/component/rabbitmq/RabbitMQEndpointTest.java
 
b/components/camel-rabbitmq/src/test/java/org/apache/camel/component/rabbitmq/RabbitMQEndpointTest.java
index ad9aca8..a3290c9 100644
--- 
a/components/camel-rabbitmq/src/test/java/org/apache/camel/component/rabbitmq/RabbitMQEndpointTest.java
+++ 
b/components/camel-rabbitmq/src/test/java/org/apache/camel/component/rabbitmq/RabbitMQEndpointTest.java
@@ -248,4 +248,10 @@ public class RabbitMQEndpointTest extends CamelTestSupport 
{
         RabbitMQEndpoint endpoint = 
context.getEndpoint("rabbitmq:localhost/exchange?requestTimeoutCheckerInterval=1000",
 RabbitMQEndpoint.class);
         assertEquals(1000, endpoint.getRequestTimeoutCheckerInterval());
     }
+
+    @Test
+    public void createEndpointWithSkipQueueDeclareEnabled() throws Exception {
+        RabbitMQEndpoint endpoint = 
context.getEndpoint("rabbitmq:localhost/exchange?skipQueueDeclare=true", 
RabbitMQEndpoint.class);
+        assertTrue(endpoint.isSkipQueueDeclare());
+    }
 }

Reply via email to