Repository: ignite
Updated Branches:
  refs/heads/ignite-zk 885703386 -> 58bc7b97e


zk


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

Branch: refs/heads/ignite-zk
Commit: ebfec4ddd6c6403963a8602c0f18858ef6f54f42
Parents: 8544122
Author: sboikov <sboi...@gridgain.com>
Authored: Thu Dec 21 16:51:53 2017 +0300
Committer: sboikov <sboi...@gridgain.com>
Committed: Thu Dec 21 18:00:26 2017 +0300

----------------------------------------------------------------------
 .../spi/discovery/zk/ZookeeperDiscoverySpi.java | 93 +++++++++++++++-----
 .../zk/internal/ZookeeperDiscoveryImpl.java     | 14 +--
 .../ZookeeperDiscoverySpiBasicTest.java         | 60 +++++++++++--
 .../testframework/junits/GridAbstractTest.java  |  4 +-
 4 files changed, 134 insertions(+), 37 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/ebfec4dd/modules/core/src/main/java/org/apache/ignite/spi/discovery/zk/ZookeeperDiscoverySpi.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/zk/ZookeeperDiscoverySpi.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/zk/ZookeeperDiscoverySpi.java
index aaf761f..559a1db 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/zk/ZookeeperDiscoverySpi.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/zk/ZookeeperDiscoverySpi.java
@@ -72,15 +72,21 @@ public class ZookeeperDiscoverySpi extends IgniteSpiAdapter 
implements Discovery
 
     /** */
     @GridToStringInclude
-    private String zkConnectionString;
+    private String zkRootPath = DFLT_ROOT_PATH;
 
     /** */
     @GridToStringInclude
-    private int sesTimeout;
+    private String zkConnectionString;
+
+    /** */
+    private long joinTimeout;
 
     /** */
     @GridToStringInclude
-    private String zkRootPath = DFLT_ROOT_PATH;
+    private long sesTimeout;
+
+    /** */
+    private boolean clientReconnectDisabled;
 
     /** */
     @GridToStringExclude
@@ -92,7 +98,7 @@ public class ZookeeperDiscoverySpi extends IgniteSpiAdapter 
implements Discovery
 
     /** */
     @GridToStringExclude
-    DiscoverySpiNodeAuthenticator nodeAuth;
+    private DiscoverySpiNodeAuthenticator nodeAuth;
 
     /** */
     @GridToStringExclude
@@ -123,15 +129,19 @@ public class ZookeeperDiscoverySpi extends 
IgniteSpiAdapter implements Discovery
     private IgniteLogger log;
 
     /** */
-    private boolean clientReconnectDisabled;
-
-    /** */
     private IgniteDiscoverySpiInternalListener internalLsnr;
 
+    /**
+     * @return Base path in ZK for znodes created by SPI.
+     */
     public String getZkRootPath() {
         return zkRootPath;
     }
 
+    /**
+     * @param zkRootPath Base path in ZooKeeper for znodes created by SPI.
+     * @return {@code this} for chaining.
+     */
     @IgniteSpiConfiguration(optional = true)
     public ZookeeperDiscoverySpi setZkRootPath(String zkRootPath) {
         this.zkRootPath = zkRootPath;
@@ -139,21 +149,53 @@ public class ZookeeperDiscoverySpi extends 
IgniteSpiAdapter implements Discovery
         return this;
     }
 
-    public int getSessionTimeout() {
+    /**
+     * @return ZooKeeper session timeout.
+     */
+    public long getSessionTimeout() {
         return sesTimeout;
     }
 
+    /**
+     * @param sesTimeout ZooKeeper session timeout.
+     * @return {@code this} for chaining.
+     */
     @IgniteSpiConfiguration(optional = true)
-    public ZookeeperDiscoverySpi setSessionTimeout(int sesTimeout) {
+    public ZookeeperDiscoverySpi setSessionTimeout(long sesTimeout) {
         this.sesTimeout = sesTimeout;
 
         return this;
     }
 
+    /**
+     * @return Cluster join timeout.
+     */
+    public long getJoinTimeout() {
+        return joinTimeout;
+    }
+
+    /**
+     * @param joinTimeout Cluster join timeout ({@code 0} means wait forever).
+     * @return {@code this} for chaining.
+     */
+    @IgniteSpiConfiguration(optional = true)
+    public ZookeeperDiscoverySpi setJoinTimeout(long joinTimeout) {
+        this.joinTimeout = joinTimeout;
+
+        return this;
+    }
+
+    /**
+     * @return ZooKeeper connection string
+     */
     public String getZkConnectionString() {
         return zkConnectionString;
     }
 
+    /**
+     * @param zkConnectionString ZooKeeper connection string
+     * @return {@code this} for chaining.
+     */
     @IgniteSpiConfiguration(optional = false)
     public ZookeeperDiscoverySpi setZkConnectionString(String 
zkConnectionString) {
         this.zkConnectionString = zkConnectionString;
@@ -174,10 +216,13 @@ public class ZookeeperDiscoverySpi extends 
IgniteSpiAdapter implements Discovery
      * Sets client reconnect disabled flag.
      *
      * @param clientReconnectDisabled Client reconnect disabled flag.
+     * @return {@code this} for chaining.
      */
     @IgniteSpiConfiguration(optional = true)
-    public void setClientReconnectDisabled(boolean clientReconnectDisabled) {
+    public ZookeeperDiscoverySpi setClientReconnectDisabled(boolean 
clientReconnectDisabled) {
         this.clientReconnectDisabled = clientReconnectDisabled;
+
+        return this;
     }
 
     /** {@inheritDoc} */
@@ -434,17 +479,6 @@ public class ZookeeperDiscoverySpi extends 
IgniteSpiAdapter implements Discovery
             impl.stop();
     }
 
-    /** {@inheritDoc} */
-    public Object clone() {
-        ZookeeperDiscoverySpi spi = new ZookeeperDiscoverySpi();
-
-        spi.setZkConnectionString(zkConnectionString);
-        spi.setSessionTimeout(sesTimeout);
-        spi.setClientReconnectDisabled(clientReconnectDisabled);
-
-        return spi;
-    }
-
     /**
      * @return Local node instance.
      */
@@ -484,6 +518,23 @@ public class ZookeeperDiscoverySpi extends 
IgniteSpiAdapter implements Discovery
         return locNode;
     }
 
+    /**
+     * Used for tests (call via reflection).
+     *
+     * @return Copy of SPI.
+     */
+    private ZookeeperDiscoverySpi cloneSpiConfiguration() {
+        ZookeeperDiscoverySpi spi = new ZookeeperDiscoverySpi();
+
+        spi.setZkRootPath(zkRootPath);
+        spi.setZkConnectionString(zkConnectionString);
+        spi.setSessionTimeout(sesTimeout);
+        spi.setJoinTimeout(joinTimeout);
+        spi.setClientReconnectDisabled(clientReconnectDisabled);
+
+        return spi;
+    }
+
     /** {@inheritDoc} */
     @Override public String toString() {
         return S.toString(ZookeeperDiscoverySpi.class, this);

http://git-wip-us.apache.org/repos/asf/ignite/blob/ebfec4dd/modules/core/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryImpl.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryImpl.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryImpl.java
index 847b345..1c033c0 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryImpl.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryImpl.java
@@ -230,6 +230,13 @@ public class ZookeeperDiscoveryImpl {
     }
 
     /**
+     * @return Exception.
+     */
+    private static IgniteClientDisconnectedCheckedException disconnectError() {
+        return new IgniteClientDisconnectedCheckedException(null, "Client node 
disconnected.");
+    }
+
+    /**
      * @return Logger.
      */
     IgniteLogger log() {
@@ -522,13 +529,6 @@ public class ZookeeperDiscoveryImpl {
     }
 
     /**
-     * @return Exception.
-     */
-    static IgniteClientDisconnectedCheckedException disconnectError() {
-        return new IgniteClientDisconnectedCheckedException(null, "Client node 
disconnected.");
-    }
-
-    /**
      * @param nodeId Node ID.
      * @return {@code True} if node joined or joining topology.
      */

http://git-wip-us.apache.org/repos/asf/ignite/blob/ebfec4dd/modules/core/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySpiBasicTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySpiBasicTest.java
 
b/modules/core/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySpiBasicTest.java
index b17d70c..57e53fc 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySpiBasicTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySpiBasicTest.java
@@ -308,12 +308,6 @@ public class ZookeeperDiscoverySpiBasicTest extends 
GridCommonAbstractTest {
         super.beforeTestsStarted();
 
         IgnitionEx.TEST_ZK = false;
-
-        if (USE_TEST_CLUSTER) {
-            zkCluster = createTestingCluster(ZK_SRVS);
-
-            zkCluster.start();
-        }
     }
 
     /**
@@ -363,6 +357,15 @@ public class ZookeeperDiscoverySpiBasicTest extends 
GridCommonAbstractTest {
 
     /** {@inheritDoc} */
     @Override protected void afterTestsStopped() throws Exception {
+        stopZkCluster();
+
+        super.afterTestsStopped();
+    }
+
+    /**
+     *
+     */
+    private void stopZkCluster() {
         if (zkCluster != null) {
             try {
                 zkCluster.close();
@@ -373,8 +376,6 @@ public class ZookeeperDiscoverySpiBasicTest extends 
GridCommonAbstractTest {
 
             zkCluster = null;
         }
-
-        super.afterTestsStopped();
     }
 
     /**
@@ -395,6 +396,12 @@ public class ZookeeperDiscoverySpiBasicTest extends 
GridCommonAbstractTest {
     @Override protected void beforeTest() throws Exception {
         super.beforeTest();
 
+        if (USE_TEST_CLUSTER && zkCluster == null) {
+            zkCluster = createTestingCluster(ZK_SRVS);
+
+            zkCluster.start();
+        }
+
         reset();
     }
 
@@ -702,6 +709,7 @@ public class ZookeeperDiscoverySpiBasicTest extends 
GridCommonAbstractTest {
     }
 
     /**
+     * @param expNodes Expected nodes number.
      * @throws Exception If failed.
      */
     private void checkTestSecuritySubject(int expNodes) throws Exception {
@@ -2502,6 +2510,42 @@ public class ZookeeperDiscoverySpiBasicTest extends 
GridCommonAbstractTest {
     }
 
     /**
+     * @throws Exception If failed.
+     */
+    public void testStartNoZk() throws Exception {
+        stopZkCluster();
+
+        sesTimeout = 30_000;
+
+        zkCluster = createTestingCluster(3);
+
+        try {
+            final AtomicInteger idx = new AtomicInteger();
+
+            IgniteInternalFuture fut = GridTestUtils.runMultiThreadedAsync(new 
Callable<Void>() {
+                @Override public Void call() throws Exception {
+                    startGrid(idx.getAndIncrement());
+
+                    return null;
+                }
+            }, 5, "start-node");
+
+            U.sleep(5000);
+
+            assertFalse(fut.isDone());
+
+            zkCluster.start();
+
+            fut.get();
+
+            waitForTopology(5);
+        }
+        finally {
+            zkCluster.start();
+        }
+    }
+
+    /**
      * @param dfltConsistenId Default consistent ID flag.
      * @throws Exception If failed.
      */

http://git-wip-us.apache.org/repos/asf/ignite/blob/ebfec4dd/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
 
b/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
index 4b62534..1084ce1 100755
--- 
a/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/testframework/junits/GridAbstractTest.java
@@ -972,7 +972,9 @@ public abstract class GridAbstractTest extends TestCase {
 
         if (!(discoverySpi instanceof TcpDiscoverySpi)) {
             try {
-                Method m = discoverySpi.getClass().getMethod("clone");
+                Method m = 
discoverySpi.getClass().getMethod("cloneSpiConfiguration");
+
+                m.setAccessible(true);
 
                 cfg.setDiscoverySpi((DiscoverySpi)m.invoke(discoverySpi));
 

Reply via email to