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