You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2013/12/16 07:54:09 UTC

git commit: CAMEL-6868 Added addresses option to support clustered brokers

Updated Branches:
  refs/heads/master 15e1077d2 -> 2e7a7c8ad


CAMEL-6868 Added addresses option to support clustered brokers


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

Branch: refs/heads/master
Commit: 2e7a7c8ad81843a65cb405ca4c19473153dbf11f
Parents: 15e1077
Author: Willem Jiang <wi...@gmail.com>
Authored: Mon Dec 16 14:53:43 2013 +0800
Committer: Willem Jiang <wi...@gmail.com>
Committed: Mon Dec 16 14:53:43 2013 +0800

----------------------------------------------------------------------
 .../component/rabbitmq/RabbitMQEndpoint.java     | 19 ++++++++++++++++++-
 .../component/rabbitmq/RabbitMQEndpointTest.java | 10 ++++++++++
 2 files changed, 28 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/2e7a7c8a/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 f54f41f..338c1c5 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
@@ -24,6 +24,7 @@ import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 
 import com.rabbitmq.client.AMQP;
+import com.rabbitmq.client.Address;
 import com.rabbitmq.client.Connection;
 import com.rabbitmq.client.ConnectionFactory;
 import com.rabbitmq.client.Envelope;
@@ -54,6 +55,7 @@ public class RabbitMQEndpoint extends DefaultEndpoint {
     private String exchangeName;
     private String exchangeType = "direct";
     private String routingKey;
+    private Address[] addresses;
     
     public RabbitMQEndpoint() {
     }
@@ -107,7 +109,11 @@ public class RabbitMQEndpoint extends DefaultEndpoint {
         }
         factory.setHost(getHostname());
         factory.setPort(getPortNumber());
-        return factory.newConnection(executor);
+        if (getAddresses() == null) {
+            return factory.newConnection(executor);
+        } else {
+            return factory.newConnection(executor, getAddresses());
+        }
     }
 
     @Override
@@ -239,4 +245,15 @@ public class RabbitMQEndpoint extends DefaultEndpoint {
     public boolean isBridgeEndpoint() {
         return bridgeEndpoint;
     }
+    
+    public void setAddresses(String addresses) {
+        Address[] addressArray = Address.parseAddresses(addresses);
+        if (addressArray.length > 0) {
+            this.addresses = addressArray;
+        }
+    }
+    
+    public Address[] getAddresses() {
+        return addresses;
+    }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/2e7a7c8a/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 2f30177..9f22e92 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
@@ -24,6 +24,7 @@ import java.util.UUID;
 import java.util.concurrent.ThreadPoolExecutor;
 
 import com.rabbitmq.client.AMQP;
+import com.rabbitmq.client.Address;
 import com.rabbitmq.client.Envelope;
 import com.rabbitmq.client.impl.LongStringHelper;
 import org.apache.camel.Exchange;
@@ -111,4 +112,13 @@ public class RabbitMQEndpointTest extends CamelTestSupport {
 
         assertTrue(endpoint.isSingleton());
     }
+    
+    @Test
+    public void brokerEndpointAddressesSettings() throws Exception {
+        RabbitMQEndpoint endpoint = context.getEndpoint("rabbitmq:localhost/exchange?addresses=server1:12345,server2:12345", RabbitMQEndpoint.class);
+        assertEquals("Wrong size of endpoint addresses.", 2, endpoint.getAddresses().length);
+        assertEquals("Get a wrong endpoint address.", new Address("server1", 12345), endpoint.getAddresses()[0]);
+        assertEquals("Get a wrong endpoint address.", new Address("server2", 12345), endpoint.getAddresses()[1]);
+        
+    }
 }