CAMEL-6909: Added exchangeType option to camel-rabbit. Thanks to  Dmitry Buzdin 
for the patch.


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

Branch: refs/heads/master
Commit: a16b90726f42331194b87da55ced3fc6c6aa41f6
Parents: d389a6e
Author: Claus Ibsen <davscl...@apache.org>
Authored: Fri Nov 8 15:29:05 2013 +0100
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Fri Nov 8 15:52:32 2013 +0100

----------------------------------------------------------------------
 .../component/rabbitmq/RabbitMQConsumer.java    |  6 +++--
 .../component/rabbitmq/RabbitMQEndpoint.java    |  9 +++++++
 .../rabbitmq/RabbitMQComponentTest.java         | 27 +++++++++++++++++---
 3 files changed, 37 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/a16b9072/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQConsumer.java
----------------------------------------------------------------------
diff --git 
a/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQConsumer.java
 
b/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQConsumer.java
index f2fa128..df3f698 100644
--- 
a/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQConsumer.java
+++ 
b/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQConsumer.java
@@ -55,8 +55,10 @@ public class RabbitMQConsumer extends DefaultConsumer {
         channel = conn.createChannel();
         log.debug("Using channel {}", channel);
 
-        channel.exchangeDeclare(endpoint.getExchangeName(), "direct",
-                endpoint.isDurable(), endpoint.isAutoDelete(),
+        channel.exchangeDeclare(endpoint.getExchangeName(),
+                endpoint.getExchangeType(),
+                endpoint.isDurable(),
+                endpoint.isAutoDelete(),
                 new HashMap<String, Object>());
 
         // need to make sure the queueDeclare is same with the exchange declare

http://git-wip-us.apache.org/repos/asf/camel/blob/a16b9072/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 4423721..b008646 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
@@ -51,6 +51,7 @@ public class RabbitMQEndpoint extends DefaultEndpoint {
     private boolean durable = true;
     private String queue = 
String.valueOf(UUID.randomUUID().toString().hashCode());
     private String exchangeName;
+    private String exchangeType = "direct";
     private String routingKey;
     
     public RabbitMQEndpoint() {
@@ -214,6 +215,14 @@ public class RabbitMQEndpoint extends DefaultEndpoint {
         this.exchangeName = exchangeName;
     }
 
+    public String getExchangeType() {
+        return exchangeType;
+    }
+
+    public void setExchangeType(String exchangeType) {
+        this.exchangeType = exchangeType;
+    }
+
     public String getRoutingKey() {
         return routingKey;
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/a16b9072/components/camel-rabbitmq/src/test/java/org/apache/camel/component/rabbitmq/RabbitMQComponentTest.java
----------------------------------------------------------------------
diff --git 
a/components/camel-rabbitmq/src/test/java/org/apache/camel/component/rabbitmq/RabbitMQComponentTest.java
 
b/components/camel-rabbitmq/src/test/java/org/apache/camel/component/rabbitmq/RabbitMQComponentTest.java
index 244bc29..454a26d 100644
--- 
a/components/camel-rabbitmq/src/test/java/org/apache/camel/component/rabbitmq/RabbitMQComponentTest.java
+++ 
b/components/camel-rabbitmq/src/test/java/org/apache/camel/component/rabbitmq/RabbitMQComponentTest.java
@@ -30,6 +30,18 @@ public class RabbitMQComponentTest {
     private CamelContext context = Mockito.mock(CamelContext.class);
 
     @Test
+    public void testDefaultProperties() throws Exception {
+        RabbitMQEndpoint endpoint = createEndpoint(new HashMap<String, 
Object>());
+
+        assertEquals(14, endpoint.getPortNumber());
+        assertEquals(10, endpoint.getThreadPoolSize());
+        assertEquals(true, endpoint.isAutoAck());
+        assertEquals(true, endpoint.isAutoDelete());
+        assertEquals(true, endpoint.isDurable());
+        assertEquals("direct", endpoint.getExchangeType());
+    }
+
+    @Test
     public void testPropertiesSet() throws Exception {
         Map<String, Object> params = new HashMap<String, Object>();
         params.put("username", "coldplay");
@@ -40,11 +52,10 @@ public class RabbitMQComponentTest {
         params.put("portNumber", 14123);
         params.put("hostname", "special.host");
         params.put("queue", "queuey");
+        params.put("exchangeType", "topic");
 
-        String uri = "rabbitmq:special.host:14/queuey";
-        String remaining = "special.host:14/queuey";
+        RabbitMQEndpoint endpoint = createEndpoint(params);
 
-        RabbitMQEndpoint endpoint = new 
RabbitMQComponent(context).createEndpoint(uri, remaining, params);
         assertEquals("chrism", endpoint.getPassword());
         assertEquals("coldplay", endpoint.getUsername());
         assertEquals("queuey", endpoint.getQueue());
@@ -53,5 +64,15 @@ public class RabbitMQComponentTest {
         assertEquals(14123, endpoint.getPortNumber());
         assertEquals(515, endpoint.getThreadPoolSize());
         assertEquals(true, endpoint.isAutoAck());
+        assertEquals(true, endpoint.isAutoDelete());
+        assertEquals(true, endpoint.isDurable());
+        assertEquals("topic", endpoint.getExchangeType());
+    }
+
+    private RabbitMQEndpoint createEndpoint(Map<String, Object> params) throws 
Exception {
+        String uri = "rabbitmq:special.host:14/queuey";
+        String remaining = "special.host:14/queuey";
+
+        return new RabbitMQComponent(context).createEndpoint(uri, remaining, 
params);
     }
 }

Reply via email to