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/20 12:34:33 UTC

[3/4] git commit: CAMEL-7086 Allow multiple Zookeeper servers in endpoint with thanks to Klaus

CAMEL-7086 Allow multiple Zookeeper servers in endpoint with thanks to Klaus


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

Branch: refs/heads/camel-2.11.x
Commit: 1e2fd8c0ad128d8d4fa5dde99eb35a9dbef60f02
Parents: 3a2dabb
Author: Willem Jiang <wi...@gmail.com>
Authored: Fri Dec 20 19:29:59 2013 +0800
Committer: Willem Jiang <wi...@gmail.com>
Committed: Fri Dec 20 19:34:10 2013 +0800

----------------------------------------------------------------------
 .../apache/camel/component/zookeeper/ConnectionHolder.java  | 4 +++-
 .../camel/component/zookeeper/ZooKeeperComponent.java       | 9 ++++++---
 .../camel/component/zookeeper/ZooKeeperEndpointTest.java    | 8 ++++++++
 3 files changed, 17 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/1e2fd8c0/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ConnectionHolder.java
----------------------------------------------------------------------
diff --git a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ConnectionHolder.java b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ConnectionHolder.java
index b9fd907..29de485 100644
--- a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ConnectionHolder.java
+++ b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ConnectionHolder.java
@@ -89,7 +89,9 @@ public class ConnectionHolder implements Watcher {
 
     public void closeConnection() {
         try {
-            zookeeper.close();
+            if (zookeeper != null) {
+                zookeeper.close();
+            }
             if (LOG.isDebugEnabled()) {
                 LOG.debug("Shutting down connection to Zookeeper cluster {}", configuration.getConnectString());
             }

http://git-wip-us.apache.org/repos/asf/camel/blob/1e2fd8c0/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperComponent.java b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperComponent.java
index a35020e..c1f014e 100644
--- a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperComponent.java
+++ b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperComponent.java
@@ -56,9 +56,12 @@ public class ZooKeeperComponent extends DefaultComponent {
     }
 
     private void extractConfigFromUri(String remaining, ZooKeeperConfiguration config) throws URISyntaxException {
-        URI u = new URI(remaining);
-        config.addZookeeperServer(u.getHost() + (u.getPort() != -1 ? ":" + u.getPort() : ""));
-        config.setPath(u.getPath());
+        URI fullUri = new URI(remaining);
+        String[] hosts = fullUri.getAuthority().split(",");
+        for (String host : hosts) {
+            config.addZookeeperServer(host.trim());
+        }
+        config.setPath(fullUri.getPath());
     }
 
     public ZooKeeperConfiguration getConfiguration() {

http://git-wip-us.apache.org/repos/asf/camel/blob/1e2fd8c0/components/camel-zookeeper/src/test/java/org/apache/camel/component/zookeeper/ZooKeeperEndpointTest.java
----------------------------------------------------------------------
diff --git a/components/camel-zookeeper/src/test/java/org/apache/camel/component/zookeeper/ZooKeeperEndpointTest.java b/components/camel-zookeeper/src/test/java/org/apache/camel/component/zookeeper/ZooKeeperEndpointTest.java
index 7e59de2..83db2a4 100644
--- a/components/camel-zookeeper/src/test/java/org/apache/camel/component/zookeeper/ZooKeeperEndpointTest.java
+++ b/components/camel-zookeeper/src/test/java/org/apache/camel/component/zookeeper/ZooKeeperEndpointTest.java
@@ -32,5 +32,13 @@ public class ZooKeeperEndpointTest extends CamelTestSupport {
         endpoint = context.getEndpoint("zookeeper:someserver/zoo?awaitExistence=false", ZooKeeperEndpoint.class);
         assertFalse("The awaitExistence option should be false", endpoint.getAwaitExistence());
     }
+    
+    public void multipleZooKeeperServers() {
+        ZooKeeperEndpoint endpoint = context.getEndpoint("zookeeper:someserver1,someserver2:1234/zoo", ZooKeeperEndpoint.class);
+        assertEquals("Get wrong number of servers", 2, endpoint.getConfiguration().getServers().size());
+        assertEquals("The first server address is wrong", "someserver1", endpoint.getConfiguration().getServers().get(0));
+        assertEquals("The second server address is wrong", "someserver2:1234", endpoint.getConfiguration().getServers().get(0));
+        
+    }
 
 }