Repository: ignite
Updated Branches:
  refs/heads/ignite-zk e790a8e5c -> c1e20330d


zk


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

Branch: refs/heads/ignite-zk
Commit: c1e20330d4bc374c55a60c4a50d84558a5474519
Parents: e790a8e
Author: sboikov <[email protected]>
Authored: Wed Nov 29 16:24:04 2017 +0300
Committer: sboikov <[email protected]>
Committed: Wed Nov 29 17:07:24 2017 +0300

----------------------------------------------------------------------
 .../org/apache/ignite/internal/IgnitionEx.java  |  2 ++
 .../spi/discovery/zk/ZookeeperDiscoverySpi.java | 32 ++++++++++++++------
 .../zk/internal/ZookeeperDiscoveryImpl.java     | 22 ++++++++++++--
 .../testframework/junits/GridAbstractTest.java  | 16 ++++++++++
 .../junits/multijvm/IgniteNodeRunner.java       |  2 ++
 5 files changed, 63 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ignite/blob/c1e20330/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java 
b/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java
index 93a82a5..b5f86d7 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/IgnitionEx.java
@@ -170,6 +170,8 @@ public class IgnitionEx {
 
             try {
                 zkCluster.start();
+
+                System.out.println("ZK cluster started: " + 
zkCluster.getConnectString());
             }
             catch (Exception e) {
                 e.printStackTrace();

http://git-wip-us.apache.org/repos/asf/ignite/blob/c1e20330/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 3c1f805..79e7ba1 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
@@ -164,7 +164,7 @@ public class ZookeeperDiscoverySpi extends IgniteSpiAdapter 
implements Discovery
 
     /** {@inheritDoc} */
     @Override public void reconnect() {
-        // TODO ZK
+        impl.reconnect();
     }
 
     /** {@inheritDoc} */
@@ -174,6 +174,14 @@ public class ZookeeperDiscoverySpi extends 
IgniteSpiAdapter implements Discovery
 
     /** {@inheritDoc} */
     @Nullable @Override public Serializable consistentId() throws 
IgniteSpiException {
+        if (consistentId == null) {
+            consistentId = ignite.configuration().getConsistentId();
+
+            // TODO ZK
+            if (consistentId == null)
+                consistentId = ignite.configuration().getNodeId();
+        }
+
         return consistentId;
     }
 
@@ -306,21 +314,27 @@ public class ZookeeperDiscoverySpi extends 
IgniteSpiAdapter implements Discovery
         }
     }
 
+    /** {@inheritDoc} */
+    public Object clone() {
+        ZookeeperDiscoverySpi spi = new ZookeeperDiscoverySpi();
+
+        spi.setZkConnectionString(zkConnectionString);
+        spi.setSessionTimeout(sesTimeout);
+        spi.setClientReconnectDisabled(clientReconnectDisabled);
+
+        return spi;
+    }
+
     /**
      * @return Local node instance.
      */
     private ZookeeperClusterNode initLocalNode() {
         assert ignite != null;
 
-        consistentId = ignite.configuration().getConsistentId();
-
-        UUID nodeId = ignite.configuration().getNodeId();
-
-        // TODO ZK
-        if (consistentId == null)
-            consistentId = nodeId;
+        consistentId = consistentId();
 
-        ZookeeperClusterNode locNode = new ZookeeperClusterNode(nodeId,
+        ZookeeperClusterNode locNode = new ZookeeperClusterNode(
+            ignite.configuration().getNodeId(),
             locNodeVer,
             locNodeAttrs,
             consistentId,

http://git-wip-us.apache.org/repos/asf/ignite/blob/c1e20330/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 e848551..0ecbaf3 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
@@ -45,9 +45,9 @@ import org.apache.ignite.internal.IgniteNodeAttributes;
 import org.apache.ignite.internal.events.DiscoveryCustomEvent;
 import org.apache.ignite.internal.util.GridSpinBusyLock;
 import org.apache.ignite.internal.util.future.GridFutureAdapter;
-import org.apache.ignite.internal.util.typedef.F;
 import org.apache.ignite.internal.util.typedef.internal.U;
 import org.apache.ignite.lang.IgniteRunnable;
+import org.apache.ignite.marshaller.MarshallerUtils;
 import org.apache.ignite.marshaller.jdk.JdkMarshaller;
 import org.apache.ignite.spi.IgniteSpiException;
 import org.apache.ignite.spi.IgniteSpiThread;
@@ -157,6 +157,8 @@ public class ZookeeperDiscoveryImpl {
         boolean clientReconnectEnabled) {
         assert locNode.id() != null && locNode.isLocal() : locNode;
 
+        MarshallerUtils.setNodeName(marsh, igniteInstanceName);
+
         ZkIgnitePaths.validatePath(zkRootPath);
 
         zkPaths = new ZkIgnitePaths(zkRootPath);
@@ -218,6 +220,15 @@ public class ZookeeperDiscoveryImpl {
     }
 
     /**
+     *
+     */
+    public void reconnect() {
+        assert clientReconnectEnabled;
+
+        evtWorker.onReconnectRequest();
+    }
+
+    /**
      * @return Remote nodes.
      */
     public Collection<ClusterNode> remoteNodes() {
@@ -1595,7 +1606,14 @@ public class ZookeeperDiscoveryImpl {
         /**
          *
          */
-        void processReconnect() {
+        void onReconnectRequest() {
+            evtsQ.add(RECONNECT);
+        }
+
+        /**
+         *
+         */
+        private void processReconnect() {
             assert locNode.isClient() : locNode;
 
             if (connState == ConnectionState.DISCONNECTED)

http://git-wip-us.apache.org/repos/asf/ignite/blob/c1e20330/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 a858429..cdaae76 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
@@ -90,6 +90,7 @@ import org.apache.ignite.marshaller.jdk.JdkMarshaller;
 import org.apache.ignite.resources.IgniteInstanceResource;
 import org.apache.ignite.spi.checkpoint.sharedfs.SharedFsCheckpointSpi;
 import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi;
+import org.apache.ignite.spi.discovery.DiscoverySpi;
 import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage;
 import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi;
 import org.apache.ignite.spi.discovery.tcp.TestTcpDiscoverySpi;
@@ -969,6 +970,21 @@ public abstract class GridAbstractTest extends TestCase {
         if (cfg == null)
             cfg = optimize(getConfiguration(igniteInstanceName));
 
+        DiscoverySpi discoverySpi = locNode.configuration().getDiscoverySpi();
+
+        if (!(discoverySpi instanceof TcpDiscoverySpi)) {
+            try {
+                Method m = discoverySpi.getClass().getMethod("clone");
+
+                cfg.setDiscoverySpi((DiscoverySpi)m.invoke(discoverySpi));
+
+                resetDiscovery = false;
+            }
+            catch (NoSuchMethodException e) {
+                // Ignore.
+            }
+        }
+
         return new IgniteProcessProxy(cfg, log, locNode, resetDiscovery);
     }
 

http://git-wip-us.apache.org/repos/asf/ignite/blob/c1e20330/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteNodeRunner.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteNodeRunner.java
 
b/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteNodeRunner.java
index d7be576..2b3a19c 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteNodeRunner.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteNodeRunner.java
@@ -162,6 +162,8 @@ public class IgniteNodeRunner {
                 cfg.setDiscoverySpi(disco);
             }
 
+            X.println("Configured discovery: " + 
cfg.getDiscoverySpi().getClass().getName());
+
             return cfg;
         }
         finally {

Reply via email to