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 {
