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