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 2015/10/09 02:12:20 UTC

[3/7] curator git commit: ExhibitorEnsembleProvider is not compatible with updateServerList()

ExhibitorEnsembleProvider is not compatible with updateServerList()


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

Branch: refs/heads/CURATOR-3.0
Commit: 6e56e8ae9f04ffdd76505858dbbe5b1ff04dbd49
Parents: 56d9ba6
Author: randgalt <ra...@apache.org>
Authored: Sat Sep 26 18:03:06 2015 -0500
Committer: randgalt <ra...@apache.org>
Committed: Sat Sep 26 18:03:06 2015 -0500

----------------------------------------------------------------------
 .../org/apache/curator/ConnectionState.java     |  9 +++++-
 .../curator/ensemble/EnsembleProvider.java      | 12 ++++++++
 .../exhibitor/ExhibitorEnsembleProvider.java    | 30 ++++++++++++--------
 .../ensemble/fixed/FixedEnsembleProvider.java   |  6 ++++
 4 files changed, 44 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/curator/blob/6e56e8ae/curator-client/src/main/java/org/apache/curator/ConnectionState.java
----------------------------------------------------------------------
diff --git a/curator-client/src/main/java/org/apache/curator/ConnectionState.java b/curator-client/src/main/java/org/apache/curator/ConnectionState.java
index 4c1e6ad..0b21643 100644
--- a/curator-client/src/main/java/org/apache/curator/ConnectionState.java
+++ b/curator-client/src/main/java/org/apache/curator/ConnectionState.java
@@ -326,7 +326,14 @@ class ConnectionState implements Watcher, Closeable
             }
             else
             {
-                zooKeeper.updateServerList(newConnectionString);
+                if ( ensembleProvider.updateServerListEnabled() )
+                {
+                    zooKeeper.updateServerList(newConnectionString);
+                }
+                else
+                {
+                    reset();
+                }
             }
         }
         catch ( Exception e )

http://git-wip-us.apache.org/repos/asf/curator/blob/6e56e8ae/curator-client/src/main/java/org/apache/curator/ensemble/EnsembleProvider.java
----------------------------------------------------------------------
diff --git a/curator-client/src/main/java/org/apache/curator/ensemble/EnsembleProvider.java b/curator-client/src/main/java/org/apache/curator/ensemble/EnsembleProvider.java
index c03726f..4db8348 100644
--- a/curator-client/src/main/java/org/apache/curator/ensemble/EnsembleProvider.java
+++ b/curator-client/src/main/java/org/apache/curator/ensemble/EnsembleProvider.java
@@ -52,5 +52,17 @@ public interface EnsembleProvider extends Closeable
      */
     public void         close() throws IOException;
 
+    /**
+     * A new connection string event was received
+     *
+     * @param connectionString the new connection string
+     */
     public void setConnectionString(String connectionString);
+
+    /**
+     * Return true if this ensemble provider supports {@link ZooKeeper#updateServerList(String)}
+     *
+     * @return true/false
+     */
+    public boolean updateServerListEnabled();
 }

http://git-wip-us.apache.org/repos/asf/curator/blob/6e56e8ae/curator-client/src/main/java/org/apache/curator/ensemble/exhibitor/ExhibitorEnsembleProvider.java
----------------------------------------------------------------------
diff --git a/curator-client/src/main/java/org/apache/curator/ensemble/exhibitor/ExhibitorEnsembleProvider.java b/curator-client/src/main/java/org/apache/curator/ensemble/exhibitor/ExhibitorEnsembleProvider.java
index 4cbf5ee..4573724 100644
--- a/curator-client/src/main/java/org/apache/curator/ensemble/exhibitor/ExhibitorEnsembleProvider.java
+++ b/curator-client/src/main/java/org/apache/curator/ensemble/exhibitor/ExhibitorEnsembleProvider.java
@@ -116,19 +116,19 @@ public class ExhibitorEnsembleProvider implements EnsembleProvider
         Preconditions.checkState(state.compareAndSet(State.LATENT, State.STARTED), "Cannot be started more than once");
 
         service.scheduleWithFixedDelay
-        (
-            new Runnable()
-            {
-                @Override
-                public void run()
+            (
+                new Runnable()
                 {
-                    poll();
-                }
-            },
-            pollingMs,
-            pollingMs,
-            TimeUnit.MILLISECONDS
-        );
+                    @Override
+                    public void run()
+                    {
+                        poll();
+                    }
+                },
+                pollingMs,
+                pollingMs,
+                TimeUnit.MILLISECONDS
+            );
     }
 
     @Override
@@ -151,6 +151,12 @@ public class ExhibitorEnsembleProvider implements EnsembleProvider
         log.info("setConnectionString received. Ignoring. " + connectionString);
     }
 
+    @Override
+    public boolean updateServerListEnabled()
+    {
+        return false;
+    }
+
     @VisibleForTesting
     protected void poll()
     {

http://git-wip-us.apache.org/repos/asf/curator/blob/6e56e8ae/curator-client/src/main/java/org/apache/curator/ensemble/fixed/FixedEnsembleProvider.java
----------------------------------------------------------------------
diff --git a/curator-client/src/main/java/org/apache/curator/ensemble/fixed/FixedEnsembleProvider.java b/curator-client/src/main/java/org/apache/curator/ensemble/fixed/FixedEnsembleProvider.java
index 159497d..28ad1b6 100644
--- a/curator-client/src/main/java/org/apache/curator/ensemble/fixed/FixedEnsembleProvider.java
+++ b/curator-client/src/main/java/org/apache/curator/ensemble/fixed/FixedEnsembleProvider.java
@@ -63,4 +63,10 @@ public class FixedEnsembleProvider implements EnsembleProvider
     {
         return connectionString.get();
     }
+
+    @Override
+    public boolean updateServerListEnabled()
+    {
+        return true;
+    }
 }