You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@curator.apache.org by ra...@apache.org on 2017/07/18 13:20:44 UTC
[1/4] curator git commit: Fixing connection string construction to
ignore wildcard client addresses
Repository: curator
Updated Branches:
refs/heads/master 7a60af0dd -> 81fc3d9b2
Fixing connection string construction to ignore wildcard client addresses
Project: http://git-wip-us.apache.org/repos/asf/curator/repo
Commit: http://git-wip-us.apache.org/repos/asf/curator/commit/9b73d11b
Tree: http://git-wip-us.apache.org/repos/asf/curator/tree/9b73d11b
Diff: http://git-wip-us.apache.org/repos/asf/curator/diff/9b73d11b
Branch: refs/heads/master
Commit: 9b73d11bc03c6e37567e237e96c36cdf93e4ff66
Parents: 87a145c
Author: Kenco <da...@gmail.com>
Authored: Mon Mar 13 20:51:42 2017 +0000
Committer: Kenco <da...@gmail.com>
Committed: Mon Mar 13 20:51:42 2017 +0000
----------------------------------------------------------------------
.../curator/framework/imps/EnsembleTracker.java | 40 +++++++++++++++-----
.../framework/imps/TestReconfiguration.java | 32 ++++++++++++++++
2 files changed, 62 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/curator/blob/9b73d11b/curator-framework/src/main/java/org/apache/curator/framework/imps/EnsembleTracker.java
----------------------------------------------------------------------
diff --git a/curator-framework/src/main/java/org/apache/curator/framework/imps/EnsembleTracker.java b/curator-framework/src/main/java/org/apache/curator/framework/imps/EnsembleTracker.java
index 7245ceb..97d8d8c 100644
--- a/curator-framework/src/main/java/org/apache/curator/framework/imps/EnsembleTracker.java
+++ b/curator-framework/src/main/java/org/apache/curator/framework/imps/EnsembleTracker.java
@@ -20,7 +20,6 @@
package org.apache.curator.framework.imps;
import com.google.common.annotations.VisibleForTesting;
-import com.google.common.base.Objects;
import com.google.common.base.Preconditions;
import com.google.common.collect.Maps;
import org.apache.curator.ensemble.EnsembleProvider;
@@ -40,10 +39,11 @@ import org.apache.zookeeper.server.quorum.flexible.QuorumMaj;
import org.apache.zookeeper.server.quorum.flexible.QuorumVerifier;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+
import java.io.ByteArrayInputStream;
import java.io.Closeable;
+import java.net.InetAddress;
import java.net.InetSocketAddress;
-import java.util.Arrays;
import java.util.Properties;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference;
@@ -166,12 +166,26 @@ public class EnsembleTracker implements Closeable, CuratorWatcher
StringBuilder sb = new StringBuilder();
for ( QuorumPeer.QuorumServer server : data.getAllMembers().values() )
{
+ if ( server.clientAddr == null )
+ {
+ // Invalid client address configuration in zoo.cfg
+ continue;
+ }
if ( sb.length() != 0 )
{
sb.append(",");
}
- InetSocketAddress address = Objects.firstNonNull(server.clientAddr, server.addr);
- sb.append(address.getAddress().getHostAddress()).append(":").append(address.getPort());
+ InetAddress wildcardAddress = new InetSocketAddress(0).getAddress();
+ String hostAddress;
+ if ( wildcardAddress.equals(server.clientAddr.getAddress()) )
+ {
+ hostAddress = server.addr.getAddress().getHostAddress();
+ }
+ else
+ {
+ hostAddress = server.clientAddr.getAddress().getHostAddress();
+ }
+ sb.append(hostAddress).append(":").append(server.clientAddr.getPort());
}
return sb.toString();
@@ -183,13 +197,19 @@ public class EnsembleTracker implements Closeable, CuratorWatcher
properties.load(new ByteArrayInputStream(data));
log.info("New config event received: {}", properties);
- QuorumMaj newConfig = new QuorumMaj(properties);
- currentConfig.set(newConfig);
-
- String connectionString = configToConnectionString(newConfig);
- if ( connectionString.trim().length() > 0 )
+ if (!properties.isEmpty())
{
- ensembleProvider.setConnectionString(connectionString);
+ QuorumMaj newConfig = new QuorumMaj(properties);
+ String connectionString = configToConnectionString(newConfig);
+ if (connectionString.trim().length() > 0)
+ {
+ currentConfig.set(newConfig);
+ ensembleProvider.setConnectionString(connectionString);
+ }
+ else
+ {
+ log.error("Invalid config event received: {}", properties);
+ }
}
else
{
http://git-wip-us.apache.org/repos/asf/curator/blob/9b73d11b/curator-framework/src/test/java/org/apache/curator/framework/imps/TestReconfiguration.java
----------------------------------------------------------------------
diff --git a/curator-framework/src/test/java/org/apache/curator/framework/imps/TestReconfiguration.java b/curator-framework/src/test/java/org/apache/curator/framework/imps/TestReconfiguration.java
index 7565590..52d2860 100644
--- a/curator-framework/src/test/java/org/apache/curator/framework/imps/TestReconfiguration.java
+++ b/curator-framework/src/test/java/org/apache/curator/framework/imps/TestReconfiguration.java
@@ -313,6 +313,38 @@ public class TestReconfiguration extends BaseClassForTests
}
}
+ @Test
+ public void testConfigToConnectionStringNormal() throws Exception
+ {
+ String config = "server.1=10.1.2.3:2888:3888:participant;10.2.3.4:2181";
+ String configString = EnsembleTracker.configToConnectionString(toQuorumVerifier(config.getBytes()));
+ Assert.assertEquals("10.2.3.4:2181", configString);
+ }
+
+ @Test
+ public void testConfigToConnectionStringNoClientAddr() throws Exception
+ {
+ String config = "server.1=10.1.2.3:2888:3888:participant;2181";
+ String configString = EnsembleTracker.configToConnectionString(toQuorumVerifier(config.getBytes()));
+ Assert.assertEquals("10.1.2.3:2181", configString);
+ }
+
+ @Test
+ public void testConfigToConnectionStringWildcardClientAddr() throws Exception
+ {
+ String config = "server.1=10.1.2.3:2888:3888:participant;0.0.0.0:2181";
+ String configString = EnsembleTracker.configToConnectionString(toQuorumVerifier(config.getBytes()));
+ Assert.assertEquals("10.1.2.3:2181", configString);
+ }
+
+ @Test
+ public void testConfigToConnectionStringNoClientAddrOrPort() throws Exception
+ {
+ String config = "server.1=10.1.2.3:2888:3888:participant";
+ String configString = EnsembleTracker.configToConnectionString(toQuorumVerifier(config.getBytes()));
+ Assert.assertEquals("", configString);
+ }
+
private CuratorFramework newClient()
{
final AtomicReference<String> connectString = new AtomicReference<>(cluster.getConnectString());
[4/4] curator git commit: Merge branch 'CURATOR-392' of
github.com:Vile2539/curator into CURATOR-392
Posted by ra...@apache.org.
Merge branch 'CURATOR-392' of github.com:Vile2539/curator into CURATOR-392
Project: http://git-wip-us.apache.org/repos/asf/curator/repo
Commit: http://git-wip-us.apache.org/repos/asf/curator/commit/81fc3d9b
Tree: http://git-wip-us.apache.org/repos/asf/curator/tree/81fc3d9b
Diff: http://git-wip-us.apache.org/repos/asf/curator/diff/81fc3d9b
Branch: refs/heads/master
Commit: 81fc3d9b29ddef501919b6a4166afeae3613cbc5
Parents: 7a60af0 bd8fb66
Author: randgalt <ra...@apache.org>
Authored: Tue Jul 18 08:18:10 2017 -0500
Committer: randgalt <ra...@apache.org>
Committed: Tue Jul 18 08:18:10 2017 -0500
----------------------------------------------------------------------
.../curator/framework/imps/EnsembleTracker.java | 39 ++++++++---
.../framework/imps/TestReconfiguration.java | 72 ++++++++++++++++++++
2 files changed, 100 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
[2/4] curator git commit: Merge branch 'master' into CURATOR-392
Posted by ra...@apache.org.
Merge branch 'master' into CURATOR-392
Project: http://git-wip-us.apache.org/repos/asf/curator/repo
Commit: http://git-wip-us.apache.org/repos/asf/curator/commit/ddf4cb28
Tree: http://git-wip-us.apache.org/repos/asf/curator/tree/ddf4cb28
Diff: http://git-wip-us.apache.org/repos/asf/curator/diff/ddf4cb28
Branch: refs/heads/master
Commit: ddf4cb281e61c6fb0a25ea68331e1b4599e4bb20
Parents: 9b73d11 7d4f062
Author: Kenco <da...@gmail.com>
Authored: Mon Jul 17 20:45:43 2017 +0100
Committer: Kenco <da...@gmail.com>
Committed: Mon Jul 17 20:45:43 2017 +0100
----------------------------------------------------------------------
README | 7 -
README.md | 11 +
.../ensemble/fixed/FixedEnsembleProvider.java | 4 +-
.../curator/utils/ExceptionAccumulator.java | 69 +++
.../org/apache/curator/utils/ThreadUtils.java | 4 +-
curator-examples/pom.xml | 23 +-
.../src/main/java/async/AsyncExamples.java | 127 +++++
.../src/main/java/modeled/ContainerType.java | 68 +++
.../java/modeled/ModeledCuratorExamples.java | 67 +++
.../java/modeled/ModeledCuratorExamplesAlt.java | 52 ++
.../src/main/java/modeled/PersonId.java | 70 +++
.../src/main/java/modeled/PersonModel.java | 120 +++++
.../src/main/java/modeled/PersonModelSpec.java | 46 ++
.../src/main/java/pubsub/Clients.java | 76 +++
.../src/main/java/pubsub/Publisher.java | 146 ++++++
curator-examples/src/main/java/pubsub/README.md | 93 ++++
.../src/main/java/pubsub/SubPubTest.java | 220 +++++++++
.../src/main/java/pubsub/Subscriber.java | 84 ++++
.../java/pubsub/messages/LocationAvailable.java | 55 +++
.../main/java/pubsub/messages/UserCreated.java | 64 +++
.../src/main/java/pubsub/models/Group.java | 47 ++
.../src/main/java/pubsub/models/Instance.java | 76 +++
.../main/java/pubsub/models/InstanceType.java | 27 ++
.../src/main/java/pubsub/models/Message.java | 67 +++
.../src/main/java/pubsub/models/Priority.java | 26 +
.../src/main/resources/log4j.properties | 24 +
.../src/site/confluence/index.confluence | 5 +-
.../curator/framework/api/CreateBuilder.java | 27 +-
.../curator/framework/api/CreateBuilder2.java | 34 ++
.../transaction/TransactionCreateBuilder.java | 24 +-
.../transaction/TransactionCreateBuilder2.java | 34 ++
.../framework/imps/CreateBuilderImpl.java | 159 +++----
.../framework/imps/GetDataBuilderImpl.java | 5 +
.../apache/curator/framework/schema/Schema.java | 2 +-
.../framework/imps/TestFailedDeleteManager.java | 8 +-
.../curator/framework/imps/TestFramework.java | 2 +-
.../framework/imps/TestFrameworkEdges.java | 22 +-
.../framework/imps/TestNamespaceFacade.java | 6 +-
.../framework/imps/TestReconfiguration.java | 74 ++-
.../curator/framework/imps/TestTtlNodes.java | 88 ++++
.../framework/recipes/cache/NodeCache.java | 15 +
.../recipes/cache/PathChildrenCache.java | 4 +-
.../recipes/locks/InterProcessMutex.java | 7 +-
.../framework/recipes/nodes/PersistentNode.java | 103 +++-
.../recipes/nodes/PersistentNodeListener.java | 33 ++
.../recipes/nodes/PersistentTtlNode.java | 209 +++++++++
.../framework/recipes/shared/SharedCount.java | 10 +-
.../framework/recipes/shared/SharedValue.java | 28 +-
.../src/site/confluence/index.confluence | 3 +-
.../persistent-ephemeral-node.confluence | 39 --
.../site/confluence/persistent-node.confluence | 39 ++
.../confluence/persistent-ttl-node.confluence | 41 ++
.../recipes/cache/TestEventOrdering.java | 2 +-
.../cache/TestPathChildrenCacheInCluster.java | 63 ++-
.../recipes/leader/TestLeaderSelector.java | 2 +-
.../locks/TestInterProcessSemaphoreCluster.java | 3 +-
.../nodes/TestPersistentEphemeralNode.java | 52 +-
.../recipes/nodes/TestPersistentTtlNode.java | 154 ++++++
.../recipes/shared/TestSharedCount.java | 117 ++++-
.../apache/curator/test/BaseClassForTests.java | 10 +-
.../org/apache/curator/test/DirectoryUtils.java | 10 +-
.../curator/test/TestingQuorumPeerMain.java | 17 +-
.../curator/test/TestingZooKeeperMain.java | 16 +-
.../curator/test/TestingZooKeeperServer.java | 18 +-
.../java/org/apache/curator/test/Timing.java | 28 ++
.../apache/curator/test/ZooKeeperMainFace.java | 3 -
curator-x-async/pom.xml | 18 +
.../org/apache/curator/x/async/AsyncStage.java | 15 +-
.../apache/curator/x/async/AsyncWrappers.java | 393 ++++++++++++++++
.../curator/x/async/api/AsyncCreateBuilder.java | 57 +++
.../x/async/api/AsyncCuratorFrameworkDsl.java | 1 -
.../api/AsyncTransactionCreateBuilder.java | 35 +-
.../x/async/details/AsyncCreateBuilderImpl.java | 43 +-
.../x/async/details/AsyncTransactionOpImpl.java | 31 +-
.../x/async/modeled/JacksonModelSerializer.java | 124 +++++
.../x/async/modeled/ModelSerializer.java | 61 +++
.../curator/x/async/modeled/ModelSpec.java | 217 +++++++++
.../x/async/modeled/ModelSpecBuilder.java | 138 ++++++
.../x/async/modeled/ModeledFramework.java | 371 +++++++++++++++
.../async/modeled/ModeledFrameworkBuilder.java | 172 +++++++
.../curator/x/async/modeled/ModeledOptions.java | 29 ++
.../curator/x/async/modeled/NodeName.java | 39 ++
.../curator/x/async/modeled/Resolvable.java | 48 ++
.../apache/curator/x/async/modeled/ZNode.java | 74 +++
.../apache/curator/x/async/modeled/ZPath.java | 279 +++++++++++
.../modeled/cached/CachedModeledFramework.java | 113 +++++
.../x/async/modeled/cached/ModeledCache.java | 46 ++
.../modeled/cached/ModeledCacheListener.java | 106 +++++
.../details/CachedModeledFrameworkImpl.java | 334 +++++++++++++
.../x/async/modeled/details/ModelSpecImpl.java | 239 ++++++++++
.../x/async/modeled/details/ModelStage.java | 171 +++++++
.../async/modeled/details/ModeledCacheImpl.java | 211 +++++++++
.../modeled/details/ModeledFrameworkImpl.java | 469 +++++++++++++++++++
.../details/VersionedModeledFrameworkImpl.java | 85 ++++
.../x/async/modeled/details/ZNodeImpl.java | 56 +++
.../x/async/modeled/details/ZPathImpl.java | 289 ++++++++++++
.../x/async/modeled/typed/TypedModelSpec.java | 87 ++++
.../x/async/modeled/typed/TypedModelSpec0.java | 61 +++
.../x/async/modeled/typed/TypedModelSpec10.java | 61 +++
.../x/async/modeled/typed/TypedModelSpec2.java | 61 +++
.../x/async/modeled/typed/TypedModelSpec3.java | 61 +++
.../x/async/modeled/typed/TypedModelSpec4.java | 61 +++
.../x/async/modeled/typed/TypedModelSpec5.java | 61 +++
.../x/async/modeled/typed/TypedModelSpec6.java | 61 +++
.../x/async/modeled/typed/TypedModelSpec7.java | 61 +++
.../x/async/modeled/typed/TypedModelSpec8.java | 61 +++
.../x/async/modeled/typed/TypedModelSpec9.java | 61 +++
.../modeled/typed/TypedModeledFramework.java | 93 ++++
.../modeled/typed/TypedModeledFramework0.java | 63 +++
.../modeled/typed/TypedModeledFramework10.java | 63 +++
.../modeled/typed/TypedModeledFramework2.java | 63 +++
.../modeled/typed/TypedModeledFramework3.java | 63 +++
.../modeled/typed/TypedModeledFramework4.java | 63 +++
.../modeled/typed/TypedModeledFramework5.java | 63 +++
.../modeled/typed/TypedModeledFramework6.java | 63 +++
.../modeled/typed/TypedModeledFramework7.java | 63 +++
.../modeled/typed/TypedModeledFramework8.java | 63 +++
.../modeled/typed/TypedModeledFramework9.java | 63 +++
.../x/async/modeled/typed/TypedZPath.java | 92 ++++
.../x/async/modeled/typed/TypedZPath0.java | 52 ++
.../x/async/modeled/typed/TypedZPath10.java | 52 ++
.../x/async/modeled/typed/TypedZPath2.java | 52 ++
.../x/async/modeled/typed/TypedZPath3.java | 52 ++
.../x/async/modeled/typed/TypedZPath4.java | 52 ++
.../x/async/modeled/typed/TypedZPath5.java | 52 ++
.../x/async/modeled/typed/TypedZPath6.java | 52 ++
.../x/async/modeled/typed/TypedZPath7.java | 52 ++
.../x/async/modeled/typed/TypedZPath8.java | 52 ++
.../x/async/modeled/typed/TypedZPath9.java | 52 ++
.../x/async/modeled/versioned/Versioned.java | 69 +++
.../versioned/VersionedModeledFramework.java | 56 +++
.../src/site/confluence/async.confluence | 212 +++++++++
.../src/site/confluence/index.confluence | 213 +--------
.../confluence/modeled-components.confluence | 186 ++++++++
.../site/confluence/modeled-typed.confluence | 89 ++++
.../src/site/confluence/modeled.confluence | 48 ++
curator-x-async/src/site/site.xml | 6 +-
.../x/async/CompletableBaseClassForTests.java | 71 +++
.../curator/x/async/TestAsyncWrappers.java | 73 +++
.../curator/x/async/TestBasicOperations.java | 58 +--
.../modeled/TestCachedModeledFramework.java | 96 ++++
.../x/async/modeled/TestModeledFramework.java | 170 +++++++
.../async/modeled/TestModeledFrameworkBase.java | 64 +++
.../curator/x/async/modeled/TestZPath.java | 126 +++++
.../x/async/modeled/models/TestModel.java | 115 +++++
.../x/async/modeled/models/TestNewerModel.java | 137 ++++++
.../x/async/modeled/models/TestSimpleModel.java | 84 ++++
.../src/test/resources/log4j.properties | 27 ++
.../curator/x/discovery/ServiceInstance.java | 15 +
.../curator/x/discovery/ServiceProvider.java | 7 +
.../details/JsonInstanceSerializer.java | 53 ++-
.../x/discovery/details/OldServiceInstance.java | 196 ++++++++
.../discovery/details/ServiceDiscoveryImpl.java | 21 +-
.../x/discovery/TestJsonInstanceSerializer.java | 16 +-
...TestJsonInstanceSerializerCompatibility.java | 107 +++++
.../details/TestNewServiceInstance.java | 145 ++++++
.../discovery/details/TestServiceDiscovery.java | 130 ++---
.../discovery/details/TestServiceProvider.java | 3 +-
curator-x-rpc/src/site/site.xml | 2 +-
doap.rdf | 4 +-
pom.xml | 27 +-
src/site/confluence/index.confluence | 2 +
src/site/site.xml | 4 +-
163 files changed, 11516 insertions(+), 601 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/curator/blob/ddf4cb28/curator-framework/src/test/java/org/apache/curator/framework/imps/TestReconfiguration.java
----------------------------------------------------------------------
diff --cc curator-framework/src/test/java/org/apache/curator/framework/imps/TestReconfiguration.java
index 52d2860,abe6cc1..9e79f24
--- a/curator-framework/src/test/java/org/apache/curator/framework/imps/TestReconfiguration.java
+++ b/curator-framework/src/test/java/org/apache/curator/framework/imps/TestReconfiguration.java
@@@ -313,41 -333,14 +333,46 @@@ public class TestReconfiguration extend
}
}
+ @Test
+ public void testConfigToConnectionStringNormal() throws Exception
+ {
+ String config = "server.1=10.1.2.3:2888:3888:participant;10.2.3.4:2181";
+ String configString = EnsembleTracker.configToConnectionString(toQuorumVerifier(config.getBytes()));
+ Assert.assertEquals("10.2.3.4:2181", configString);
+ }
+
+ @Test
+ public void testConfigToConnectionStringNoClientAddr() throws Exception
+ {
+ String config = "server.1=10.1.2.3:2888:3888:participant;2181";
+ String configString = EnsembleTracker.configToConnectionString(toQuorumVerifier(config.getBytes()));
+ Assert.assertEquals("10.1.2.3:2181", configString);
+ }
+
+ @Test
+ public void testConfigToConnectionStringWildcardClientAddr() throws Exception
+ {
+ String config = "server.1=10.1.2.3:2888:3888:participant;0.0.0.0:2181";
+ String configString = EnsembleTracker.configToConnectionString(toQuorumVerifier(config.getBytes()));
+ Assert.assertEquals("10.1.2.3:2181", configString);
+ }
+
+ @Test
+ public void testConfigToConnectionStringNoClientAddrOrPort() throws Exception
+ {
+ String config = "server.1=10.1.2.3:2888:3888:participant";
+ String configString = EnsembleTracker.configToConnectionString(toQuorumVerifier(config.getBytes()));
+ Assert.assertEquals("", configString);
+ }
+
private CuratorFramework newClient()
{
- final AtomicReference<String> connectString = new AtomicReference<>(cluster.getConnectString());
+ return newClient(cluster.getConnectString());
+ }
+
+ private CuratorFramework newClient(String connectionString)
+ {
+ final AtomicReference<String> connectString = new AtomicReference<>(connectionString);
ensembleProvider = new EnsembleProvider()
{
@Override
[3/4] curator git commit: Updated wildcard address check for IPv4 +
IPv6
Posted by ra...@apache.org.
Updated wildcard address check for IPv4 + IPv6
Also added several new tests to ensure that both IPv4 and IPv6 addresses work correctly.
Project: http://git-wip-us.apache.org/repos/asf/curator/repo
Commit: http://git-wip-us.apache.org/repos/asf/curator/commit/bd8fb660
Tree: http://git-wip-us.apache.org/repos/asf/curator/tree/bd8fb660
Diff: http://git-wip-us.apache.org/repos/asf/curator/diff/bd8fb660
Branch: refs/heads/master
Commit: bd8fb6609601f399e7d3ffa0a6b60c658686a4d7
Parents: ddf4cb2
Author: Kenco <da...@gmail.com>
Authored: Mon Jul 17 21:19:47 2017 +0100
Committer: Kenco <da...@gmail.com>
Committed: Mon Jul 17 21:19:47 2017 +0100
----------------------------------------------------------------------
.../curator/framework/imps/EnsembleTracker.java | 5 +--
.../framework/imps/TestReconfiguration.java | 46 ++++++++++++++++++--
2 files changed, 44 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/curator/blob/bd8fb660/curator-framework/src/main/java/org/apache/curator/framework/imps/EnsembleTracker.java
----------------------------------------------------------------------
diff --git a/curator-framework/src/main/java/org/apache/curator/framework/imps/EnsembleTracker.java b/curator-framework/src/main/java/org/apache/curator/framework/imps/EnsembleTracker.java
index 97d8d8c..7d8fe19 100644
--- a/curator-framework/src/main/java/org/apache/curator/framework/imps/EnsembleTracker.java
+++ b/curator-framework/src/main/java/org/apache/curator/framework/imps/EnsembleTracker.java
@@ -42,8 +42,6 @@ import org.slf4j.LoggerFactory;
import java.io.ByteArrayInputStream;
import java.io.Closeable;
-import java.net.InetAddress;
-import java.net.InetSocketAddress;
import java.util.Properties;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicReference;
@@ -175,9 +173,8 @@ public class EnsembleTracker implements Closeable, CuratorWatcher
{
sb.append(",");
}
- InetAddress wildcardAddress = new InetSocketAddress(0).getAddress();
String hostAddress;
- if ( wildcardAddress.equals(server.clientAddr.getAddress()) )
+ if ( server.clientAddr.getAddress().isAnyLocalAddress() )
{
hostAddress = server.addr.getAddress().getHostAddress();
}
http://git-wip-us.apache.org/repos/asf/curator/blob/bd8fb660/curator-framework/src/test/java/org/apache/curator/framework/imps/TestReconfiguration.java
----------------------------------------------------------------------
diff --git a/curator-framework/src/test/java/org/apache/curator/framework/imps/TestReconfiguration.java b/curator-framework/src/test/java/org/apache/curator/framework/imps/TestReconfiguration.java
index 9e79f24..ef2faed 100644
--- a/curator-framework/src/test/java/org/apache/curator/framework/imps/TestReconfiguration.java
+++ b/curator-framework/src/test/java/org/apache/curator/framework/imps/TestReconfiguration.java
@@ -334,7 +334,7 @@ public class TestReconfiguration extends BaseClassForTests
}
@Test
- public void testConfigToConnectionStringNormal() throws Exception
+ public void testConfigToConnectionStringIPv4Normal() throws Exception
{
String config = "server.1=10.1.2.3:2888:3888:participant;10.2.3.4:2181";
String configString = EnsembleTracker.configToConnectionString(toQuorumVerifier(config.getBytes()));
@@ -342,7 +342,15 @@ public class TestReconfiguration extends BaseClassForTests
}
@Test
- public void testConfigToConnectionStringNoClientAddr() throws Exception
+ public void testConfigToConnectionStringIPv6Normal() throws Exception
+ {
+ String config = "server.1=[1010:0001:0002:0003:0004:0005:0006:0007]:2888:3888:participant;[2001:db8:85a3:0:0:8a2e:370:7334]:2181";
+ String configString = EnsembleTracker.configToConnectionString(toQuorumVerifier(config.getBytes()));
+ Assert.assertEquals("2001:db8:85a3:0:0:8a2e:370:7334:2181", configString);
+ }
+
+ @Test
+ public void testConfigToConnectionStringIPv4NoClientAddr() throws Exception
{
String config = "server.1=10.1.2.3:2888:3888:participant;2181";
String configString = EnsembleTracker.configToConnectionString(toQuorumVerifier(config.getBytes()));
@@ -350,7 +358,7 @@ public class TestReconfiguration extends BaseClassForTests
}
@Test
- public void testConfigToConnectionStringWildcardClientAddr() throws Exception
+ public void testConfigToConnectionStringIPv4WildcardClientAddr() throws Exception
{
String config = "server.1=10.1.2.3:2888:3888:participant;0.0.0.0:2181";
String configString = EnsembleTracker.configToConnectionString(toQuorumVerifier(config.getBytes()));
@@ -365,6 +373,38 @@ public class TestReconfiguration extends BaseClassForTests
Assert.assertEquals("", configString);
}
+ @Test
+ public void testIPv6Wildcard1() throws Exception
+ {
+ String config = "server.1=[2001:db8:85a3:0:0:8a2e:370:7334]:2888:3888:participant;[::]:2181";
+ String configString = EnsembleTracker.configToConnectionString(toQuorumVerifier(config.getBytes()));
+ Assert.assertEquals("2001:db8:85a3:0:0:8a2e:370:7334:2181", configString);
+ }
+
+ @Test
+ public void testIPv6Wildcard2() throws Exception
+ {
+ String config = "server.1=[1010:0001:0002:0003:0004:0005:0006:0007]:2888:3888:participant;[::0]:2181";
+ String configString = EnsembleTracker.configToConnectionString(toQuorumVerifier(config.getBytes()));
+ Assert.assertEquals("1010:1:2:3:4:5:6:7:2181", configString);
+ }
+
+ @Test
+ public void testMixedIPv1() throws Exception
+ {
+ String config = "server.1=10.1.2.3:2888:3888:participant;[::]:2181";
+ String configString = EnsembleTracker.configToConnectionString(toQuorumVerifier(config.getBytes()));
+ Assert.assertEquals("10.1.2.3:2181", configString);
+ }
+
+ @Test
+ public void testMixedIPv2() throws Exception
+ {
+ String config = "server.1=[2001:db8:85a3:0:0:8a2e:370:7334]:2888:3888:participant;127.0.0.1:2181";
+ String configString = EnsembleTracker.configToConnectionString(toQuorumVerifier(config.getBytes()));
+ Assert.assertEquals("127.0.0.1:2181", configString);
+ }
+
private CuratorFramework newClient()
{
return newClient(cluster.getConnectString());