Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -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;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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}.
Expand Down Expand Up @@ -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;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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);

Expand Down Expand Up @@ -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);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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(
Expand Down
Loading