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 2016/04/06 07:25:34 UTC

[3/4] camel git commit: CAMEL-9815 Add URI parameter to skip declaration of exchange

CAMEL-9815 Add URI parameter to skip declaration of exchange


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

Branch: refs/heads/camel-2.17.x
Commit: 1c710c4bae03012d92daef294f63ab350c4e78fa
Parents: 8cb6917
Author: Fabian Chanton <fa...@misurio.ch>
Authored: Tue Apr 5 11:21:06 2016 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Wed Apr 6 07:25:17 2016 +0200

----------------------------------------------------------------------
 .../component/rabbitmq/RabbitMQDeclareSupport.java    |  8 +++++++-
 .../camel/component/rabbitmq/RabbitMQEndpoint.java    | 14 ++++++++++++++
 .../component/rabbitmq/RabbitMQEndpointTest.java      |  6 ++++++
 3 files changed, 27 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/1c710c4b/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 aa4df2f..2539d50 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
@@ -45,7 +45,9 @@ public class RabbitMQDeclareSupport {
     }
 
     private void declareAndBindExchangeWithQueue(final Channel channel) throws IOException {
-        declareExchange(channel, endpoint.getExchangeName(), endpoint.getExchangeType(), resolvedExchangeArguments());
+      if(shouldDeclareExchange()){  
+          declareExchange(channel, endpoint.getExchangeName(), endpoint.getExchangeType(), resolvedExchangeArguments());
+      }
 
         if (shouldDeclareQueue()) {
             // need to make sure the queueDeclare is same with the exchange declare
@@ -80,6 +82,10 @@ public class RabbitMQDeclareSupport {
     private boolean shouldDeclareQueue() {
         return !endpoint.isSkipQueueDeclare() && endpoint.getQueue() != null;
     }
+    
+    private boolean shouldDeclareExchange() {
+        return !endpoint.isSkipExchangeDeclare();
+    }
 
     private void populateQueueArgumentsFromConfigurer(final Map<String, Object> queueArgs) {
         if (endpoint.getQueueArgsConfigurer() != null) {

http://git-wip-us.apache.org/repos/asf/camel/blob/1c710c4b/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 3600d33..4293ca7 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
@@ -80,6 +80,8 @@ public class RabbitMQEndpoint extends DefaultEndpoint {
     @UriParam(label = "producer")
     private boolean skipQueueDeclare;
     @UriParam
+    private boolean skipExchangeDeclare;
+    @UriParam
     private Address[] addresses;
     @UriParam(defaultValue = "" + ConnectionFactory.DEFAULT_CONNECTION_TIMEOUT)
     private int connectionTimeout = ConnectionFactory.DEFAULT_CONNECTION_TIMEOUT;
@@ -403,6 +405,18 @@ public class RabbitMQEndpoint extends DefaultEndpoint {
     public boolean isSkipQueueDeclare() {
         return skipQueueDeclare;
     }
+    
+    /**
+     * If true the producer will not declare the exchange.
+     * This can be used if we need to declare the queue but not the exchange
+     */
+    public void setSkipExchangeDeclare(boolean skipExchangeDeclare) {
+        this.skipExchangeDeclare = skipExchangeDeclare;
+    }
+
+    public boolean isSkipExchangeDeclare() {
+        return skipExchangeDeclare;
+    }
 
     /**
      * If the bridgeEndpoint is true, the producer will ignore the message header of "rabbitmq.EXCHANGE_NAME" and "rabbitmq.ROUTING_KEY"

http://git-wip-us.apache.org/repos/asf/camel/blob/1c710c4b/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 a3290c9..291c907 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
@@ -254,4 +254,10 @@ public class RabbitMQEndpointTest extends CamelTestSupport {
         RabbitMQEndpoint endpoint = context.getEndpoint("rabbitmq:localhost/exchange?skipQueueDeclare=true", RabbitMQEndpoint.class);
         assertTrue(endpoint.isSkipQueueDeclare());
     }
+    
+    @Test
+    public void createEndpointWithSkipExchangeDeclareEnabled() throws Exception {
+        RabbitMQEndpoint endpoint = context.getEndpoint("rabbitmq:localhost/exchange?skipExchangeDeclare=true", RabbitMQEndpoint.class);
+        assertTrue(endpoint.isSkipExchangeDeclare());
+    }
 }