diff --git a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/TestZookeeperDiscoverySpi.java b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/TestZookeeperDiscoverySpi.java new file mode 100644 index 0000000000000..fd9e4ba42393a --- /dev/null +++ b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/TestZookeeperDiscoverySpi.java @@ -0,0 +1,74 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.ignite.spi.discovery.zk; + +import org.apache.ignite.cluster.ClusterNode; +import org.apache.ignite.internal.managers.discovery.IgniteDiscoverySpiInternalListener; +import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage; +import org.apache.ignite.spi.discovery.tcp.IgniteDiscoverySpiInternalListenerSupport; +import org.apache.ignite.testframework.junits.GridAbstractTest; + +/** + * Test wrapper over {@link ZookeeperDiscoverySpi} that is compatible with Ignite Test Framework + * (see {@link #cloneSpiConfiguration()}) and provides extended ability to intercept SPI events. + */ +public class TestZookeeperDiscoverySpi extends ZookeeperDiscoverySpi implements IgniteDiscoverySpiInternalListenerSupport { + /** */ + private volatile IgniteDiscoverySpiInternalListener internalLsnr; + + /** {@inheritDoc} */ + @Override public void sendCustomEvent(DiscoverySpiCustomMessage msg) { + IgniteDiscoverySpiInternalListener internalLsnr = this.internalLsnr; + + if (internalLsnr != null && !internalLsnr.beforeSendCustomEvent(this, log, msg)) + return; + + super.sendCustomEvent(msg); + } + + /** {@inheritDoc} */ + @Override public void beforeJoinTopology(ClusterNode locNode) { + IgniteDiscoverySpiInternalListener internalLsnr = this.internalLsnr; + + if (internalLsnr != null) + internalLsnr.beforeJoin(locNode, log); + } + + /** */ + @Override public void setInternalListener(IgniteDiscoverySpiInternalListener lsnr) { + internalLsnr = lsnr; + } + + /** + * Creates a copy of the current SPI instance. Called by Test Framework to run nodes across multiple JVMs. + * This method is called using the Java Reflection API (see {@link GridAbstractTest#startRemoteGrid}). + * + * @return Copy of current SPI instance. + */ + public ZookeeperDiscoverySpi cloneSpiConfiguration() { + ZookeeperDiscoverySpi spi = new TestZookeeperDiscoverySpi(); + + spi.setZkRootPath(getZkRootPath()); + spi.setZkConnectionString(getZkConnectionString()); + spi.setSessionTimeout(getSessionTimeout()); + spi.setJoinTimeout(getJoinTimeout()); + spi.setClientReconnectDisabled(isClientReconnectDisabled()); + + return spi; + } +} diff --git a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/ZookeeperDiscoverySpiTestConfigurator.java b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/ZookeeperDiscoverySpiTestConfigurator.java index 66873187c09ac..c50708374429c 100644 --- a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/ZookeeperDiscoverySpiTestConfigurator.java +++ b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/ZookeeperDiscoverySpiTestConfigurator.java @@ -20,15 +20,10 @@ import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; import org.apache.curator.test.TestingCluster; -import org.apache.ignite.cluster.ClusterNode; import org.apache.ignite.configuration.IgniteConfiguration; -import org.apache.ignite.internal.managers.discovery.IgniteDiscoverySpiInternalListener; import org.apache.ignite.spi.discovery.DiscoverySpi; -import org.apache.ignite.spi.discovery.DiscoverySpiCustomMessage; -import org.apache.ignite.spi.discovery.tcp.IgniteDiscoverySpiInternalListenerSupport; import org.apache.ignite.spi.discovery.tcp.TcpDiscoverySpi; import org.apache.ignite.testframework.config.GridTestProperties; -import org.apache.ignite.testframework.junits.GridAbstractTest; /** * Allows to run regular Ignite tests with {@link org.apache.ignite.spi.discovery.zk.ZookeeperDiscoverySpi}. @@ -90,51 +85,4 @@ public static void preprocessConfiguration(IgniteConfiguration cfg) { lock.unlock(); } } - - /** */ - private static class TestZookeeperDiscoverySpi extends ZookeeperDiscoverySpi implements IgniteDiscoverySpiInternalListenerSupport { - /** */ - private volatile IgniteDiscoverySpiInternalListener internalLsnr; - - /** {@inheritDoc} */ - @Override public void sendCustomEvent(DiscoverySpiCustomMessage msg) { - IgniteDiscoverySpiInternalListener internalLsnr = this.internalLsnr; - - if (internalLsnr != null && !internalLsnr.beforeSendCustomEvent(this, log, msg)) - return; - - super.sendCustomEvent(msg); - } - - /** {@inheritDoc} */ - @Override public void beforeJoinTopology(ClusterNode locNode) { - IgniteDiscoverySpiInternalListener internalLsnr = this.internalLsnr; - - if (internalLsnr != null) - internalLsnr.beforeJoin(locNode, log); - } - - /** */ - @Override public void setInternalListener(IgniteDiscoverySpiInternalListener lsnr) { - internalLsnr = lsnr; - } - - /** - * Creates copy of current SPI instance. Is called by test framework using reflection - * (see {@link GridAbstractTest#startRemoteGrid}). - * - * @return Copy of current SPI instance. - */ - public ZookeeperDiscoverySpi cloneSpiConfiguration() { - ZookeeperDiscoverySpi spi = new TestZookeeperDiscoverySpi(); - - spi.setZkRootPath(getZkRootPath()); - spi.setZkConnectionString(getZkConnectionString()); - spi.setSessionTimeout(getSessionTimeout()); - spi.setJoinTimeout(getJoinTimeout()); - spi.setClientReconnectDisabled(isClientReconnectDisabled()); - - return spi; - } - } } diff --git a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryClientDisconnectTest.java b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryClientDisconnectTest.java index 50b0370cab601..418ada363cc0a 100644 --- a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryClientDisconnectTest.java +++ b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryClientDisconnectTest.java @@ -39,7 +39,7 @@ import org.apache.ignite.lang.IgnitePredicate; import org.apache.ignite.spi.IgniteSpiException; import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi; -import org.apache.ignite.spi.discovery.zk.ZookeeperDiscoverySpi; +import org.apache.ignite.spi.discovery.zk.TestZookeeperDiscoverySpi; import org.apache.ignite.spi.discovery.zk.ZookeeperDiscoverySpiMBean; import org.apache.ignite.spi.discovery.zk.ZookeeperDiscoverySpiTestUtil; import org.apache.ignite.testframework.GridTestUtils; @@ -89,7 +89,7 @@ public void testClientReconnects() throws Exception { assertEquals(1, srv1.cluster().forClients().nodes().size()); ZookeeperDiscoverySpiMBean bean = getMxBean(srv1.name(), "SPIs", - ZookeeperDiscoverySpi.class, ZookeeperDiscoverySpiMBean.class); + TestZookeeperDiscoverySpi.class, ZookeeperDiscoverySpiMBean.class); assertNotNull(bean); diff --git a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryMiscTest.java b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryMiscTest.java index d6a48e8ee26cc..a8acf9b6faf4a 100644 --- a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryMiscTest.java +++ b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryMiscTest.java @@ -45,7 +45,7 @@ import org.apache.ignite.plugin.security.SecuritySubject; import org.apache.ignite.spi.IgniteSpiException; import org.apache.ignite.spi.discovery.DiscoverySpiNodeAuthenticator; -import org.apache.ignite.spi.discovery.zk.ZookeeperDiscoverySpi; +import org.apache.ignite.spi.discovery.zk.TestZookeeperDiscoverySpi; import org.apache.ignite.spi.discovery.zk.ZookeeperDiscoverySpiMBean; import org.apache.ignite.spi.metric.LongMetric; import org.apache.ignite.spi.metric.ObjectMetric; @@ -231,7 +231,7 @@ public void testMbean() throws Exception { IgniteEx grid = grid(i); ZookeeperDiscoverySpiMBean bean = getMxBean(grid.context().igniteInstanceName(), "SPIs", - ZookeeperDiscoverySpi.class, ZookeeperDiscoverySpiMBean.class); + TestZookeeperDiscoverySpi.class, ZookeeperDiscoverySpiMBean.class); MetricRegistry discoReg = grid.context().metric().registry(DISCO_METRICS); @@ -275,7 +275,7 @@ public void testMbeanGetCoordinator() throws Exception { IgniteEx srv2 = startGrid(2); ZookeeperDiscoverySpiMBean mbean = getMxBean(srv2.context().igniteInstanceName(), "SPIs", - ZookeeperDiscoverySpi.class, ZookeeperDiscoverySpiMBean.class); + TestZookeeperDiscoverySpi.class, ZookeeperDiscoverySpiMBean.class); stopGrid(0); diff --git a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryRandomStopOrFailConcurrentTest.java b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryRandomStopOrFailConcurrentTest.java index dbefa799cce4e..759e9ab1aecca 100644 --- a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryRandomStopOrFailConcurrentTest.java +++ b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoveryRandomStopOrFailConcurrentTest.java @@ -34,7 +34,7 @@ import org.apache.ignite.internal.IgniteEx; import org.apache.ignite.internal.util.typedef.G; import org.apache.ignite.spi.discovery.DiscoverySpiMBean; -import org.apache.ignite.spi.discovery.zk.ZookeeperDiscoverySpi; +import org.apache.ignite.spi.discovery.zk.TestZookeeperDiscoverySpi; import org.apache.ignite.spi.discovery.zk.ZookeeperDiscoverySpiMBean; import org.apache.ignite.testframework.GridTestUtils; import org.apache.zookeeper.ZkTestClientCnxnSocketNIO; @@ -233,7 +233,7 @@ private int getCoordinatorIndex() { /** */ private DiscoverySpiMBean getMbean(IgniteEx grid) { ZookeeperDiscoverySpiMBean bean = getMxBean(grid.context().igniteInstanceName(), "SPIs", - ZookeeperDiscoverySpi.class, ZookeeperDiscoverySpiMBean.class); + TestZookeeperDiscoverySpi.class, ZookeeperDiscoverySpiMBean.class); assertNotNull(bean); diff --git a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySpiTestBase.java b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySpiTestBase.java index b45b79ab2fa73..929908e2ac8e0 100644 --- a/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySpiTestBase.java +++ b/modules/zookeeper/src/test/java/org/apache/ignite/spi/discovery/zk/internal/ZookeeperDiscoverySpiTestBase.java @@ -75,6 +75,7 @@ import org.apache.ignite.spi.communication.tcp.TcpCommunicationSpi; import org.apache.ignite.spi.communication.tcp.internal.GridNioServerWrapper; import org.apache.ignite.spi.discovery.DiscoverySpiNodeAuthenticator; +import org.apache.ignite.spi.discovery.zk.TestZookeeperDiscoverySpi; import org.apache.ignite.spi.discovery.zk.ZookeeperDiscoverySpi; import org.apache.ignite.spi.discovery.zk.ZookeeperDiscoverySpiTestUtil; import org.apache.ignite.testframework.GridTestUtils; @@ -376,7 +377,7 @@ private void clearAckEveryEventSystemProperty() { if (!dfltConsistenId) cfg.setConsistentId(igniteInstanceName); - ZookeeperDiscoverySpi zkSpi = auth != null ? new TestAuthZookeeperDiscoverySpi() : new ZookeeperDiscoverySpi(); + ZookeeperDiscoverySpi zkSpi = auth != null ? new TestAuthZookeeperDiscoverySpi() : new TestZookeeperDiscoverySpi(); if (joinTimeout != 0) zkSpi.setJoinTimeout(joinTimeout); @@ -932,7 +933,7 @@ private boolean blockHandshakeOnce() { } /** */ - private static class TestAuthZookeeperDiscoverySpi extends ZookeeperDiscoverySpi { + private static class TestAuthZookeeperDiscoverySpi extends TestZookeeperDiscoverySpi { /** */ @Override public void spiStart(@Nullable String igniteInstanceName) throws IgniteSpiException { ((IgniteEx)ignite).context().addNodeAttribute(